消息中心实践与规划
https://mp.weixin.qq.com/s/_4tMPUkGDuQyQ2kRkE4n8w
网易严选消息中心实践与规划
严选消息中心作为严选的基础服务一直在不断的演进中,本文将通过图文的方式详细介绍消息中心的实践历程与接下来的体系化和平台化规划,让我们一起来期待下吧!
背景
严选自上线以来,随着用户和业务的不断增长,很多服务从原先的包罗万象全功能的tomcat集群逐渐向分布式服务发展,到现在逐步开始以轻舟为基础的庞大的上云计划,各个服务之间通过消息队列来解除强耦合越来越普遍。
初期,部门内部没有专门的团队维护消息队列服务,所以消息队列使用方式较为混乱,各个业务若需要使用队列,往往需要开发团队自己建立和维护自己服务的消息队列,早期严选的消息队列主要以RabbitMQ为主,有一些团队也会用Kafka,甚至使用Redis的list,同时各个团队需要使用各个消息队列的客户端自行完成消息的生产、消费以及重试等等逻辑,并自行监控消息队列堆积、报警。导致的结果就是资源使用浪费,管理混乱,消息队列难以维护。另外一方面,随着业务的扩展,RabbitMQ已经无法承载严选的业务流量,以RocketMQ为核心的中间件开始逐步替代RabbitMQ,但是仍然难以改变混乱的格局;因此,团队开发维护了一套统一的消息中心服务,统一的消息中心服务一方面通过对已有的消息队列进行二次开发和进一步业务封装,满足了业务方对异步消息的不同应用需求,另一方面以RocketMQ和Kafka为中心,维护了严选统一的消息中间件服务,并提供统一的管理监控服务,以提供给业务方自行使用;在需要使用消息服务时,业务既可以使用进行封装后的消息系统,也可以申请直接接入消息中间件;