一种基于redis的分布式消息通信方法技术

技术编号:28119032 阅读:31 留言:0更新日期:2021-04-19 11:22
本发明专利技术提供了一种基于redis的分布式消息通信方法,包括agent消息队列创建选择方法,所述agent消息队列创建选择方法包括:S1、Agent启动之后查看是否持有代表一个消息队列的名称值,如果不存在,执行步骤S2;如果存在执行步骤S6;S2、获取分布式锁;S3、检查配置在环境变量中的消息队列名称列表,查看redis中是否已经存在了此消息队列,如果不存在,则执行步骤S4;否则,释放锁执行步骤S1。本发明专利技术所述的一种基于redis的分布式消息通信方法能够保证存在依赖关系的消息顺序的到达设备,且不存在单点故障问题,提高了集群的可靠性,并且由于将消息分布在不同的消息队列中也提高了消息的处理能力。理能力。理能力。

【技术实现步骤摘要】
一种基于redis的分布式消息通信方法


[0001]本专利技术属于redis消息通信方法领域,尤其是涉及一种基于redis的分布式消息通信方法。

技术介绍

[0002]当前现状,agent作为与设备交互的端点,在集群环境下由于要保证消息的顺序性,故仅有一个agent服务程序运行,现有技术的agent服务存在单点问题,并且消息没有持久化,一旦agent服务异常,将导致消息丢失和业务不可用,可靠性得不到保证。

技术实现思路

[0003]有鉴于此,本专利技术旨在提出一种基于redis的分布式消息通信方法,通过redis实现消息传递机制,启动多个agent保证服务多活,且能够保证消息的顺序可靠到达。
[0004]为达到上述目的,本专利技术的技术方案是这样实现的:
[0005]一种基于redis的分布式消息通信方法,包括agent消息队列创建选择方法,所述agent消息队列创建选择方法包括:
[0006]S1、Agent启动之后查看是否持有代表一个消息队列的名称值,如果不存在,执行步骤S2;如果存在执行步骤S6;<本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于redis的分布式消息通信方法,其特征在于,包括agent消息队列创建选择方法,所述agent消息队列创建选择方法包括:S1、Agent启动之后查看是否持有代表一个消息队列的名称值,如果不存在,执行步骤S2;如果存在执行步骤S6;S2、获取分布式锁;S3、检查配置在环境变量中的消息队列名称列表,查看redis中是否已经存在了此消息队列,如果不存在,则执行步骤S4;否则,释放锁执行步骤S1;S4、创建消息队列并向消息队列中写入KEY_A字段,设置KEY_A字段的值为一个随机数,Agent持有此随机数,并设置这个KEY_A自动在N秒后超时则释放锁,执行步骤S5;S5、循环获取消息队列A中的消息,并处理消息发送到设备;S6、持有的KEY_A字段中的随机数与Agent中记录的随机数不一致,则执行步骤S2重新获取消息队列,否则,重置KEY_A,执行步骤S5继续处理消息;S7、使用Kubernetes服务探针,每N-N/2秒发送一次重置KEY_A的消息,保证A...

【专利技术属性】
技术研发人员:刘永
申请(专利权)人:紫光云技术有限公司
类型:发明
国别省市:

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

1