1)今天技术leader说了下对COK全球同服的理解,第一句话说:全球同服其实是一个伪命题。
全球同服的本质,应该是从玩家的角度理解,数据互通+玩家关系互通+战斗互通这3方面去理解,
虽然我们目前采用的分区分服的架构,一个进程负责玩家与系统的交互和玩家工会,GS1玩家工会搜不到GS2玩家工会。
但是我们却能通过redis给每个聊天频道建立一个channel,实现不同服直接的玩家数据能互通,而且,可以通过MysqL记录跨服的玩家好友关系,从而使用redis实现私聊等,给玩家全球同服的感受,战斗也是一样,数据不在一块,但是却记录的有关系,通过redis、mq等消息总线,让他们能一起打游戏,这就达到了全球同服的感受。
2)redis的事务是一种弱的事务,并没有完全保证acid,而是多个操作,可以保证被当做 一个操作执行,假如其中某个操作除了问题,是无法回滚的,因此需要写好java方法,里面调用redis命令。
这种可以解决加入工会等操作,被当做原子性执行,而无需加锁。
3)redis分片机制
加入我有20个gs,他们一起要加入工会等操作,这时,redis的分片机制,可以保证加入到不同的工会,操作到不同的节点处理,因此是相当于多个线程处理业务逻辑。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。