思考(七十):跨区服的业务逻辑服设计
背景
不少服务器架构都分区,但是又有跨区业务,比如:
- 按账号级别的好友系统
- 按账号级别的聊天系统
- 按账号级别的公会系统
等等
这些功能代码要独立出来才能实现,这点是毋庸置疑的
主要需要考虑以下问题:
-
跨区服的业务逻辑服
需要解耦与单个区服内服务器的链路关系 -
跨区服的业务逻辑服
又有可能与单个区服内服务器有业务交互(比如单个区服内服务器需要获取本次请求结果这种,不是单纯的Push) -
跨区服的业务逻辑服
需要有简单(模式化的)编程方式
本文提供一种通过 MQ 来解决以上问题
架构图
这里说的跨区服的业务逻辑服
,在架构图中就是PushServer
通过 MQ ,达成 PushServer 与区服内服务器解耦
即 PushServer 不需要知道区服内服务器架构细节
图中, 1 2 3 是跨区服的业务逻辑服
的内容,通过 MQ 获取消息,并投递到上层,执行业务逻辑,再投回 MQ
4 需要区服内服务器程序做好底层支持跨区服的业务逻辑服
的消息中继
通常这部分内容,都会有实现过的,只要复用下就行
以上