zinx
zinx copied to clipboard
关于消息序列化的问题
worker池处理业务时是否会存在消息序列化的问题,如果一个玩家的多个消息需要按顺序处理,worker池好像不能保证先来的消息先处理完
是可以的,因为每个worker和玩家业务的链接是一一对应的。 你可以理解为一个客户端的是绑定一个链接的。链接和worker是一一对应的,如果链接依次发消息,消息也是顺序的保存在对应的worker队列中,那么对于每个链接,实际上消息是不会发送给其他的worker上,这样的worker从队列另一头会一个一个消息取出,就会保证每个客户端的消息顺序问题。
详细代码在zinx/znet/msghandler.go中,您可以仔细看看,再有问题,再讨论。
好的看到了,谢谢,之前没有细看根据ConnID对WorkerPoolSize取余这个计算,其实同一链接这个值是个定值。随便问一下现在好像还没有加入数据库相关的操作,后续版本会加入吗?
zinx应该不会链接数据库,zinx实际上是一个网络开发sdk,不会耦合到db层。