最赞回答 / 原来我叫小土慕课网给我改了名字
分布式事务的话主要有两种方式:(1)两阶段提交协议。就是在两个不同服务的上层有一个事务协调器(TC)。当发起一个请求时,TC先将消息写到本地日志里,之后向所有服务发起消息,本地日志是为例故障后恢复所用,相当于凭证的效果。所有服务收到消息后,执行具体本机事务,但不会进行commit,如果成功返回yes,失败返回no。同理,返回前都应把返回的消息写到日志里,当作凭证。TC手机所有返回的消息,如果所有服务都返回yes,那么给所有服务发送commit消息,如果有一个服务返回no,那么给所有服务发送abort消息,...
2016-07-15
最赞回答 / Peter_Matrix
重复秒杀会抛RepeatKillException异常, 声明式事务检测到sevice层抛出运行期异常了就会自动回滚,回滚是以方法为整体回滚。 我说清楚了吗,没有说清楚我再讲一遍 。
2016-07-01
最新回答 / helinz
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocat...
2016-06-28
最新回答 / qq_永葆腹黑的蛙_03156515
我后来加了一个log4j.properties就没有警告了,还有SeckillServiceImpl和SeckillServiceTest里面的logger那一条的导包不要弄错了import org.slf4j.Logger;import org.slf4j.LoggerFactory;
2016-06-27
最赞回答 / imooc_garyo
当前不在秒杀时间内,所以exposed=false、md5=null,你可以去看看SeckillServieceImpl里看看逻辑,可以去数据库update下start_time和end_time再试试。
2016-06-15
最新回答 / taoy
23:12:47.590 [main] DEBUG seckill.dao.SeckillDao.reduceNumber - ==> Preparing: UPDATE seckill SET productnumber = productnumber - 1 WHERE seckill_id = ? AND start_time <= ? AND end_time >= ? AND productnumber > 0 23:12:47.594 [main] DEBUG sec...
2016-06-07