消息推送系统架构思考

256 阅读1分钟
系统能力:
  • 公众号/钉钉/邮箱消息分发
    通过集成公众号/钉钉/邮箱等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能力
架构设计

image.png

思考总结

通过这种架构,服务端可以灵活选择msg-route、msg-server的部署方式、集群规模(0-N个服务),客户端也可根据是否需要IM和消息分发能力集成对应SDK,这种模块化设计提高设计了系统的灵活性、可维护性和可扩展性、且可根据业务体量减少对应服务的集群已达到减少成本的效果。