平台介绍-主数据系统-同步消息设计

前面讲过,平台内嵌的主数据系统使用rocketMQ来构建数据同步操作。业务端数据变动时,往消息队列发送变动消息即可。之所以采用这样的架构,核心原因是restful接口一般做成同步的,业务端需要等待主数据系统处理完同步时才能返回,这种架构不适合大批量数据传递。

rocketmq发送消息的数据结构是org.apache.rocketmq.common.message.Message,而主数据系统存储的数据五花八门,如何使用单一结构来表达千变万化的数据呢?依赖于精心设计的数据封账规则:

1、topic 主题。

使用这个字段来描述对象,如"employee"标识员工,"order"标识订单。

2、tags(标签)。

使用这个字段来描述动作,如"create" 标识创建,"update"标识更新

3、body(数据主体)

整个平台封账业务交换主体是各类dto类,Message这个字段是字节数据。

消费者、生产者,需要根据topic+tags来唯一确定dto类结构,然后在字节数组和dto类之间进行互转。

通过以上硬性规定来实现各类业务数据和Message结构体之间的数据互转

相关推荐
小冷coding2 小时前
【Java】最新Java高并发高可用平台技术选型指南(思路+全栈路线)
java·开发语言
寻星探路2 小时前
【前端基础】HTML + CSS + JavaScript 快速入门(三):JS 与 jQuery 实战
java·前端·javascript·css·c++·ai·html
cyforkk3 小时前
Tomcat 类加载机制解析:为何依赖包必须放在 WEB-INF/lib 目录下
java
JaJian.3 小时前
Java后端服务假死问题排查与解决
java·开发语言
救赎小恶魔3 小时前
C++算法(5)
java·c++·算法
重生之后端学习4 小时前
236. 二叉树的最近公共祖先
java·数据结构·算法·职场和发展·深度优先
Sun_gentle4 小时前
java.lang.RuntimeException: Could not load wrapper properties from ‘C:\Users\
java·开发语言·安卓
笨蛋不要掉眼泪4 小时前
Nacos配置中心详解:核心用法、动态刷新与经典面试题解析
java·数据库·后端
橙露4 小时前
面向对象编程思想:Java 与 Python 的封装、继承与多态对比分析
java·开发语言·python