专题目标
消息总线规范
消息资产可视
消费关系可视
异常告警可视
消息场景
消息应用场景
- 流量削峰,同步转异步,业务对数据实时处理要求不高,异步处理,提高接口性能
- 应用解耦,上下游之前从直接调用关系,变成基于消息订阅发布,避免上游系统对下游系统接口过度依赖问题
- 分布式事务,使用本地消息表+消息中间件异步通知实现的分布式事务方案
- 日志处理,常见于日志采集和分析场景,通过消息队列做数据缓冲
消息体类别
- 第一类:纯通知型消息,内容对下游业务无关
消息上游通知下游进行下一步逻辑动作,消息体本身内容没有额外意义,用于回调上游应用数据。
- 第二类:消息内容,对下游业务逻辑强相关
消息下游强依赖消息上游的消息内容,一旦逻辑结构改变,则会出现业务缺陷。
该类消息应该标准化,以领域对象来构建消息,下游系统基于标准消息体,进行逻辑开发;上游系统不应针对下游系统提供差异化的消息。
消息投递,强制用Topic
消息市场
消息分类
- 通过项目注册标签来动态的
消息体版本
- 通过注解,结合Java 序列化版本标志来控制,模板类制成。上下游消息队列协作
- 消息体向下兼容,下游订阅的内容不会随消息提升版而失效(即发布方的任何变更不应该引起消费方原有的消费变化、消息版本由中心统一加)
消息发布
- 自定义Service,发送至事件服务
- 动态注册消息发布者
- 消息生产者先发布更新,消息消费者后消费(如有消费方有比较大的逻辑调整,则按该逻辑调整)
消息订阅
- 自定义注解,重写RabbitLisener
- 动态注册消息订阅者
消息权限
- 消息体含敏感信息,消息的消费方应该由权限控制,rabbit mq本身可以通过对vhost进行有效控制
消息可视
- 消费者和生产者的关系拓扑可见
- 消息消费和生产的流量速率可视
消息监控
消息消费异常
- 消费失败
- 重试失败
消息生产堆积
- 队列不存在消费者
- 队列不存在生产者
- 队列消费能力异常
下游消费异常的规范写法(SDK)
消息总线
事务消息
普通消息
- 直接采用rabbit mq本身自带的即可
消息增强
- 消息重试
- 消息延迟
- 消息持久
作者:李世荣 创建时间:2021-11-03 15:09
最后编辑:王浩彬 更新时间:2024-04-28 09:23
最后编辑:王浩彬 更新时间:2024-04-28 09:23