系统能力:
- 公众号/钉钉/邮箱消息分发
通过集成公众号/钉钉/邮箱等SDK实现 - IM消息推送
基于长连接如Websocket、私有协议的TCP长连接实现推送
模块划分
- msg-server:提供IM能力,可与长连接客户端通信,如果只需要用到消息分发(钉钉/公众号/邮箱)推送的功能,就不需要部署msg-server
- msg-route:提供统一的消息推送接口,实现两种类型消息推送,消息分发能力:公众号、钉钉,邮箱消息分发,可根据需求添加其他分发能力如短信推送等;IM消息:消息实时推送、IM聊天。
- msg-client:用于连接msg-server接收消息,私有协议的客户端实现,根据相关语言需求提供java、go等语言的sdk.
- msg-sdk: 提供登录、消息推送系统、发送消息、获取在线客户端、获取自身登录信息的能力,可以配合msg-client使用,实现IM能力
架构设计
思考总结
通过这种架构,服务端可以灵活选择msg-route、msg-server的部署方式、集群规模(0-N个服务),客户端也可根据是否需要IM和消息分发能力集成对应SDK,这种模块化设计提高设计了系统的灵活性、可维护性和可扩展性、且可根据业务体量减少对应服务的集群已达到减少成本的效果。