采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
请教下老师,本节视频末尾处演示如果撮合核心服务器重启了,重启完成后此时收到排队机的一个新的广播包,那撮合核心经过比对发现packNo跳包,则会拉取之前的委托包,如果这些委托包在上次重启之前已经撮合过了,此时又重新拉取,是不是会重复撮合了,这个地方需要做幂等处理吧,是否在后续章节有处理呢?
撮合会先校验packNo,如果校验异常,这个packNo的委托包不会进撮合,这样不会有重复撮合的问题
可能我上述没有说清楚,目前课程中对于packNo的判断代码如下: private long lastPackNo = -1; //NACK long packNo = cmdPack.getPackNo(); if (packNo == lastPackNo + 1){ }else if (packNo <= lastPackNo){ }else { //跳号 } 如果撮合重启之后 lastPackNo 重新赋值为 -1,那么新到的包就会被识别为跳包了,就会重新拉取历史包,这里的 lastPackNo 是否应该是从数据库获取每次更新到数据库中?否则每次只要一重启lastPackNo 就是-1哦
登录后可查看更多问答,登录/注册
独家掌握金融业务系统知识,培养金融IT工程师核心竞争力
922 4
998 1
975 4
1.6k 8
718 6