抱歉可能我的问题没有描述清楚,我的意思是排队机从网关抓取订单在内存中排序的时候,举个例子比如网关中有1万笔订单,排队机内存只能完成1千笔订单的排序,是否会出现内存不够用无法完成当前所有订单的排序的情况 ?
关于排队机定序过程中的故障问题:
排队机按照 抓单–>定序–>insertToKvStore(入库) 进行处理
也就是说一笔委托真正能成功进排队机的前提是需要代码一直完成调用 insertToKvStore 入库才算是完成其他raft节点的同步哦,如果在排序之后但在调用insertToKvStore之前,也就是说还没有入库的时候系统crash 了,那以前的委托订单会有丢失呢 ?
简单说就是:
排队机 RPC抓单完成,此时网关的内存队列的数据其实已经清除了因为抓单执行完毕了,然后排队机开还没完成定序就crash 了,也就是说程序还没有机会调用 insertToKvStore, 此时数据并没有存入 sofa kv数据库,也就是未完成其他raft节点的数据同步,此时因为leader挂了,其余的raft节点重新选举出一个新的leader,那新leader 如果继续完成之前的未完成的老订单的定序任务呢?
不知道我是否描述清除我的问题 :)