million_game_server
million_game_server copied to clipboard
现在有出版消息了吗?顺便问一下有否设计事务相关内容
主要关心skynet下多 actor 协作的事务问题,因为消息发送机制多个 actor 需要协作时,能否有事务来保证一系列操作的过程中,状态不会被破坏,需要失败后的回退机制,这在网游手游的游戏逻辑中太普遍了,请问书中有涉及这块吗?
按照skynet的设计,它默认单节点内的actor通信是安全的。更多的是在业务分割时把有事务需求的actor安排在一个节点内,这样可以避免因底层通信问题导致的事务不一致。
事务机制在数据库方面应用的比较多,游戏服务端业务逻辑上使用强事务机制的见到的似乎并不是很多。一方面是在一致性、吞吐量几个方面做取舍,和具体业务需求有关;另一方面是会使系统复杂度增加许多。遇到有事务需求,一般可以有三种替代方案。 其一是可以通过架构层面去规避,比如把强交互的actor放到同个节点,或者减少拆分。 其二是使用数据库的事务机制,通过数据库来做事务的中转。 其三是保留每一步的记录,万一出问题可以查询。比如充值系统每一步都会记录日志。
举个例子,如果我需要买点东西,先从银行查询余额,然后从商店获取一个物品,然后去银行扣掉钱,再把物品加到背包里。这个过程会涉及多个 actor ,整个过程又需要是一个事务,不要在执行这个事务过程中,有任何涉及的 actor 状态改变。 按上面回复的意思,那这个需求中也不需要有商店、银行之类的actor了,是不是不需要多个actor了,就只存在一个“我“这个actor?就不存在强一致性了?貌似不会这么组织数据吧
书稿中正好有个类似的例子,虽然不是说事务,但涉及到银行的例子。 算是通过业务逻辑去规避一些事务问题。
相关部分:
好的,期待
书的上市时间确定了吗,期待在年前可以拜读大作
也特别期待,刚刚问了下编辑,还在文学修改阶段。估计还要一小段时间
罗老师这个新内容比 https://github.com/TrinityCore/TrinityCore 如何?你的unity网络第二版我终于快读完了,很好,学了很多东西。
具体上市时间现在是否确定了?
具体上市时间现在是否确定了?
至少要年中了TAT
有具体的出版时间了吗
这几天网店陆续上架了^_^ 谢谢大家的等待