事件发布方法、装置、电子设备、存储介质制造方法及图纸

技术编号:28059902 阅读:22 留言:0更新日期:2021-04-14 13:36
本发明专利技术提供一种事件发布方法、装置、电子设备、存储介质,方法包括:系统实例执行业务处理以及事件发布,所述业务处理和所述事件发布包含在同一本地事务中,其中,所述系统实例执行事件发布时将事件信息储存至事件表中;系统实例异步自所述事件表中读取事件信息;系统实例将所读取的事件信息写入消息队列。本发明专利技术优化服务的事件发布,从而解决服务之间的紧耦合的同时,提升系统可靠性和数据一致性。提升系统可靠性和数据一致性。提升系统可靠性和数据一致性。

【技术实现步骤摘要】
事件发布方法、装置、电子设备、存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种事件发布方法、装置、电子设备、存储介质。

技术介绍

[0002]目前,CRM(customer relationship management,客户关系管理)整体采用微服务架构,服务的数量较多,服务与服务之间交互密切,直接相互调用甚至会形成蛛网式的调用关系,严重耦合,牵一发动全身。同时,服务内部也需要根据不同的业务结果来开展后续的业务,服务内部代码组织混乱,耦合严重。一个小的改动点可能涉及到十几个地方的改动,维护困难。
[0003]很多现有系统都通过消息队列作为事件的中介来实现事件的发布与订阅。但从可靠性角度看,这样的解决方案是有问题的,Kafka和数据库是两个异构系统,我们不能仅仅通过一个本地事务保证他们之间的数据一致性。例如,推送Kafka成功了,但是在提交数据库事务的时候失败了(比如说事务超时滚),这样kafka中就会存在一个脏数据,因为本地数据库事务已经回滚了。
[0004]由此可见,现有的消息队列虽然能解决服务之间耦合问题,但本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种事件发布方法,其特征在于,包括:系统实例执行业务处理以及事件发布,所述业务处理和所述事件发布包含在同一本地事务中,其中,所述系统实例执行事件发布时将事件信息储存至事件表中;系统实例异步自所述事件表中读取事件信息;系统实例将所读取的事件信息写入消息队列。2.如权利要求1所述的事件发布方法,其特征在于,所述事件表包括多个事件分表,一个事件分表最多分配给一个系统实例,一个系统实例对应至少一个事件分表。3.如权利要求2所述的事件发布方法,其特征在于,所述事件分表的数量大于等于消息媒介的分区数量,所述消息媒介的分区数量为kafka消息系统的分区数量或者Rocket消息队列的数量。4.如权利要求2所述的事件发布方法,其特征在于,所述事件分表和系统实例的分配由一主节点进行管理,所述主节点监听一实例管理节点以感知系统实例的数量,所述实例管理节点管理至少一个实例节点,所述实例管理节点所管理的实例节点随系统实例的创建而创建。5.如权利要求4所述的事件发布方法,其特征在于,所述主节点根据所感知的系统实例的数量以及事件分表的数量向各所...

【专利技术属性】
技术研发人员:欧阳亮陈华应
申请(专利权)人:江苏满运物流信息有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1