# component-message **Repository Path**: yilin123/component-message ## Basic Information - **Project Name**: component-message - **Description**: component-message是一个基于restful风格研发的消息组件,易于理解与使用,开箱即用,基于disruptor框架实现消息收发可支持大量的并发请求。 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2019-08-17 - **Last Updated**: 2025-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # component-message #### 介绍 component-message是一个基于restful风格研发的消息组件,易于理解与使用,开箱即用,基于disruptor框架实现消息收发可支持大量的并发请求。 **可靠消息系统设计** **1:背景** 公司经过2年的持续发展,业务规模持续上涨,对数据的实时性要求更高,原来通过http同步的方式主动发送请求的方式进行数据同步已不能满足系统在性能上、可用性上要求,同步会降低系统吞吐量的同时由于目标系统网络异常、接口异常等异常情况会导致整个请求阻塞,严重情况下会导致整体服务不可用。引入消息中间件来进行数据同步可以提高系统吞吐量,同时由于消息属于异步的特性,可以解耦各个业务系统之间的耦合性,避免由于某个业务系统网络异常导致系统全盘奔溃。 **2:设计思路** 该消息组件在设计过程中借鉴了许多优秀的前辈的系统设计经验以及来自于市场上优秀的消息中间件,本消息组件使用推送的方式实现消息发送,消息生产者通过将消息发送至消息组件,由消息组件对消息进行存储,并通过既定的规则将消息发送给消费方,如果发送失败,消息组件可以按照重试规则尝试向消息消费方再次发送消息,消息组件设计思路参考:可靠消息系统设计.pdf **3:消息可靠性分析** 消息可靠性在于消息组件可以将消息存储在消息组件的数据库中,一旦消息在发送过程中、消息过程中出现异常,可以通过消息系统的重试机制、确认机制、异常处理机制实现消息的重发、人工干预等操作来实现消息的可靠性,消息组件技术流程图参考:可靠消息系统技术流程设计2.0.pdf 状态在任何情况下都是非常有利于技术、业务、产品进行沟通与理解的沟通工具,消息组件的状态图设计参考:可靠消息系统状态设计.pdf! **4:应用** 消息组件是基于restful的风格来实现的,使用消息组件需要弄清楚几个角色,消息生产者(主动方)、消息组件、消息消费方(被动方),消息生产者将消息发送给消息组件,消息组件处理并发送消息给消息消费方。 消息系统的接口设计如下所示,研发人员可以依据该接口文档进行协同工作,消息系统接口规范参考:可靠消息接口文档.pdf 消息组件应用: 1:数据同步:两个独立的系统通过消息实现数据的同步。 2:分布式事务:分布式事务需要借助于本地消息表,通过将事务于本地消息表绑定在一起,然后在通过将本地消息表的消息发送给消息组件,由消息组件通知消息消费方完成消费方业务处理。 **5:优化方向** 1:目前仅实现了消息组件向消费方推送的方式,下一个阶段实现消息消费方主动向消息组件拉取消息进行消费。 2:客户端负载均衡策略,消息生产者可以自定义负载均衡策略,目前想到的是一种是随机,一种可以通过业务参数定向向某台消息组件发送消息。 3:消息组件自动发现,通过zookeeper来管理消息组件元数据信息,如果新的消息组件启动可以进行自动发现。 **6:联系方式** 更多技术分享,请关注 公众号:架构师笔迹 QQ群:807700617 微信:15766618268