一种消息发布订阅方法、系统、计算机及存储介质与流程

文档序号:36977259发布日期:2024-02-07 13:30阅读:19来源:国知局
一种消息发布订阅方法、系统、计算机及存储介质与流程

本发明属于分布式计算机软件,具体地涉及一种消息发布订阅方法、系统、计算机及存储介质。


背景技术:

1、在现代计算环境中,实时数据传输和处理对于许多应用程序至关重要。分布式消息传输平台(如apache kafka)为处理实时数据流提供了强大的解决方案,但是分布式消息传输平台需要创建庞大的分布式架构。


技术实现思路

1、为了解决上述技术问题,本发明提供了消息发布订阅方法、系统、计算机及存储介质系统,用于解决现有的数据传输和处理的方法现有创建庞大的分布式架构的技术问题。

2、一方面,该发明提供以下技术方案,一种消息发布订阅方法,所述消息发布订阅方法基于golang的协程和通道机制来管理并发和消息传递,所述消息发布订阅方法包括以下步骤:

3、创建若干消息主题,并获取数据,将所述数据写入其对应的所述消息主题的本地文件中,其中,写入所述地文件中所述数据的二进制数据直接序列化并追加到所述本地文件的末尾;

4、注册消费者,判断所述消费者对应的所述消息主题,并订阅该所述消息主题的所述本地文件,打开所述消费者对应的所述协程,并循环读取被订阅的所述本地文件中的新增数据;

5、创建若干通道,并将所述新增数据及订阅的所述本地文件中的数据写入其对应的所述通道,将写入所述通道内的数据传输给所述消费者;

6、创建偏移量管理,所述创建偏移量实时监控所述消费者的偏移量,其中,所述偏移量包括所述消费者接收所述数据的进度及所述消费者在所述消息主题的位置。

7、相比现有技术,本申请的有益效果为:通过消费者和消费主题的配合,实现本方法轻量级的效果,本方法专注于本地环境,无需庞大的分布式架构,部署和使用更加简单。通过借助golang的并发机制,系实现了高吞吐量和低延迟的消息传递。我们采用发布订阅模式,用户可以轻松创建消息主题、发布消息和订阅数据,适用于快速搭建本地消息传递系统的场景。

8、进一步的,在创建偏移量管理的步骤之前,所述方法还包括:

9、判断所述通道内的数据是否成功传输给所述消费者,若所述通道内的数据成功传输给所述消费者,则执行创建偏移量管理的步骤。

10、进一步的,判断所述通道内的数据是否成功传输给所述消费者的步骤之后,所述方法还包括:

11、若所述通道内的数据未成功传输给所述消费者,则等待预设的时间重复所述判断所述通道内的数据是否成功传输给所述消费者的步骤。

12、进一步的,在将写入所述通道内的数据传输给所述消费者的步骤之后,所述方法还包括:

13、创建数据库,将获取的所述数据同时传输给所述数据库;

14、间隔预设时间检查所述数据库,对所述数据库内超过预设保留时间或超过规格大小的数据进行清理。

15、进一步的,所述方法还包括:

16、创建记录库,实施监控数据传输给所述消费者过程中的异常情况并记录到所述记录库。

17、进一步的,在订阅该所述消息主题的所述本地文件的步骤之前,所述方法还包括:

18、标注该所述消费者的id,并打开所述本地文件的写入流及维护所述本地文件的句柄。

19、进一步的,在订阅该所述消息主题的所述本地文件的步骤之后,所述方法还包括:

20、打开所述本地文件的读取流,并创建消费者列表,将所述消费者增加至所述创建消费者列表中。

21、第二方面,该发明提供以下技术方案,所述消息发布订阅系统基于golang的协程和通道机制来管理并发和消息传递;所述消息发布订阅系统包括:

22、写入模块,用于创建若干消息主题,并获取数据,将所述数据写入其对应的所述消息主题的本地文件中,其中,写入所述地文件中所述数据的二进制数据直接序列化并追加到所述本地文件的末尾;

23、订阅模块,用于注册消费者,判断所述消费者对应的所述消息主题,并订阅该所述消息主题的所述本地文件,打开所述消费者对应的所述协程,并循环读取被订阅的所述本地文件中的新增数据;

24、消费模块,用于创建若干通道,并将所述新增数据及订阅的所述本地文件中的数据写入其对应的所述通道,将写入所述通道内的数据传输给所述消费者;

25、偏移模块,用于创建偏移量管理,所述创建偏移量实时监控所述消费者的偏移量,其中,所述偏移量包括所述消费者接收所述数据的进度及所述消费者在所述消息主题的位置。

26、第三方面,该发明提供以下技术方案,一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的消息发布订阅方法。

27、第四方面,该发明提供以下技术方案,一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的消息发布订阅方法。



技术特征:

1.一种消息发布订阅方法,其特征在于,所述消息发布订阅方法基于golang的协程和通道机制来管理并发和消息传递,所述消息发布订阅方法包括以下步骤:

2.根据权利要求1所述的消息发布订阅方法,其特征在于,在创建偏移量管理的步骤之前,所述方法还包括:

3.根据权利要求2所述的消息发布订阅方法,其特征在于,判断所述通道内的数据是否成功传输给所述消费者的步骤之后,所述方法还包括:

4.根据权利要求1所述的消息发布订阅方法,其特征在于,在将写入所述通道内的数据传输给所述消费者的步骤之后,所述方法还包括:

5.根据权利要求1所述的消息发布订阅方法,其特征在于,所述方法还包括:

6.根据权利要求1所述的消息发布订阅方法,其特征在于,在订阅该所述消息主题的所述本地文件的步骤之前,所述方法还包括:

7.根据权利要求1所述的消息发布订阅方法,其特征在于,在订阅该所述消息主题的所述本地文件的步骤之后,所述方法还包括:

8.一种基于golang的消息发布订阅系统,其特征在于,所述消息发布订阅系统基于golang的协程和通道机制来管理并发和消息传递;所述消息发布订阅系统包括:

9.一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的消息发布订阅方法。

10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的消息发布订阅方法。


技术总结
本发明提供了一种消息发布订阅方法、系统、计算机及存储介质,所述方法包括创建若干消息主题,并获取数据,将所述数据写入其对应的所述消息主题的本地文件中,注册消费者,判断所述消费者对应的所述消息主题,并订阅该所述消息主题的所述本地文件,打开所述消费者对应的所述协程,并循环读取被订阅的所述本地文件中的新增数据;创建若干通道,并将所述新增数据及订阅的所述本地文件中的数据写入其对应的所述通道,将写入所述通道内的数据传输给所述消费者;创建偏移量管理,所述创建偏移量实时监控所述消费者的偏移量,无需庞大的分布式架构,部署和使用更加简单。

技术研发人员:殷伟文
受保护的技术使用者:江西飞尚科技有限公司
技术研发日:
技术公布日:2024/2/6
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1