System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及云计算与大数据,尤其涉及一种消息队列的访问方法、系统、设备及存储介质。
技术介绍
1、算网业务支撑系统自身也是完全分布式的应用系统,数据和应用分散在多个节点,话单文件、计费规则数据都会存在频繁的分发,为了保证数据传输的可靠性,相关数据必须通过消息队列传送。消息队列用于在消息的生产者和消费者之间,构建一个可靠的中间缓存机制,以发布-订阅方式,实现消息的可靠传递。
2、主流的消息队列基本功能相似,但又存在不同的侧重,以适应不同的业务场景。例如:kafka吞吐量极为优异,对巨大的消息也能良好的处理,但对于多主题支持非常有限;rocketmq对多主题支持较好,但对巨大的消息处理存在一些缺陷;rabbitmq提供最高的数据一致性、稳定性和可靠性,但性能和吞吐量相对较低;zeromq提供最低的时延,支持灵活拓扑,但是不支持消息持久化和崩溃恢复。应用系统开发实现的时候,需要根据不同的业务场景,选择合适的mq来承载。
3、因为不同消息队列的协议差异,应用代码访问不同消息队列时,具体代码实现差异极大。例如,activemq遵循jms规范,rabbitmq遵循amqp规范,而zeromq更像socket应用,应用系统开发代码是和消息队列的选型强绑定的,当访问的消息队列变换时,存在大量代码的修改甚至重构,导致开发成本增加。
技术实现思路
1、本申请实施例通过提供一种消息队列的访问方法、系统、设备及存储介质,旨在将不同的消息队列封装为统一的消息队列微服务,并制定统一的消息
2、本申请实施例提供了一种消息队列的访问方法,应用于消息队列微服务,所述消息队列微服务设置有与应用服务相同的连接器,所述消息队列的访问方法包括:
3、基于所述消息队列微服务的连接器接收应用服务的连接器发送的通用消息,其中,基于所述通用消息采用的消息结构整合不同消息队列协议的内容;
4、解析所述通用消息,得到所述应用服务待访问的目标消息队列;
5、连接并访问所述目标消息队列。
6、可选地,所述基于所述消息队列微服务的连接器接收应用服务的连接器发送的通用消息的步骤之前,还包括:
7、所述消息队列微服务启动时,获取所述消息队列微服务对应的微服务架构类型;
8、确定所述微服务架构类型对应的服务注册中心,其中,不同类型的微服务架构对应的服务注册中心不同;
9、获取所述消息队列微服务对应的微服务信息;
10、向所述服务注册中心注册所述消息队列微服务对应的微服务信息,以使所述应用服务能基于注册的所述微服务信息访问对应的消息队列微服务。
11、可选地,所述微服务信息至少包括微服务名称、微服务地址和微服务端口,所述向所述服务注册中心注册所述消息队列微服务对应的微服务信息的步骤包括:
12、向所述服务注册中心注册所述消息队列微服务对应的微服务名称、微服务地址和微服务端口,以使所述应用服务能基于所述微服务名称、所述微服务地址和所述微服务端口访问对应的消息队列微服务。
13、可选地,所述向所述服务注册中心注册所述消息队列微服务对应的微服务信息的步骤之后,还包括:
14、配置消息队列,以使所述消息队列微服务与所述消息队列连接。
15、可选地,所述解析所述通用消息,得到所述应用服务待访问的目标消息队列的步骤包括:
16、解析所述通用消息,得到消息头信息,所述消息头信息包括:消息属性信息、应用服务标识和消息队列标识中的至少一个;
17、基于所述消息属性信息、所述应用服务标识和所述消息队列标识中的至少一个,确定目标消息队列。
18、本申请实施例提供了一种消息队列的访问方法,应用于应用服务,所述应用服务设置有连接器,所述消息队列的访问方法包括:
19、获取消息头信息和消息体信息,所述消息头信息包括应用服务标识、消息队列标识和消息属性信息中的至少一个,所述消息体信息包括消息内容信息;
20、对所述消息头信息和消息体信息进行封装,得到通用消息;
21、基于所述应用服务的连接器向消息队列微服务发送所述通用消息,以基于所述通用消息访问对应的消息队列。
22、可选地,所述消息属性信息包括:消息版本、消息体数据类型、消息优先级、重发标记、压缩标记和消息序号中的至少一个,所述消息内容信息包括主题字节数、消息内容字节数、消息主题和消息内容中的至少一个。
23、此外,为实现上述目的,本申请还提供了一种消息队列的访问系统,包括:信息获取模块,封装模块和发送模块,其中,
24、信息获取模块,用于获取消息头信息和消息体信息,所述消息头信息包括应用服务标识、消息队列标识和消息属性信息中的至少一个,所述消息体信息包括消息内容信息;
25、封装模块,用于对所述消息头信息和消息体信息进行封装,得到通用消息;
26、发送模块,用于基于应用服务的连接器向消息队列微服务发送所述通用消息,以基于所述通用消息访问对应的消息队列;
27、或者,所述消息队列的访问系统包括:接收模块,解析模块和访问模块,其中,
28、接收模块,用于基于所述消息队列微服务的连接器接收应用服务的连接器发送的通用消息,其中,基于所述通用消息采用的消息结构整合不同消息队列协议的内容;
29、解析模块,用于解析所述通用消息,得到所述应用服务待访问的目标消息队列;
30、访问模块,用于连接并访问所述目标消息队列。
31、此外,为实现上述目的,本申请还提供了一种消息队列的访问设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的消息队列的访问程序,所述消息队列的访问程序被所述处理器执行时实现上述的消息队列的访问方法的步骤。
32、此外,为实现上述目的,本申请还提供了一种计算机可读存储介质,其上存储有消息队列的访问程序,所述消息队列的访问程序被处理器执行时实现上述的消息队列的访问方法的步骤。
33、本申请实施例中提供的一种消息队列的访问方法、系统、设备及存储介质的技术方案,本申请根据算网的不确定性和消息队列的不同特点,将不同的消息队列封装为统一的消息队列微服务,并制定统一的消息格式,应用系统无需考虑不同消息队列之间的差异,更换消息队列的时候修改本系统的配置即可,降低开本成本,提高消息队列的访问效率。
本文档来自技高网...【技术保护点】
1.一种消息队列的访问方法,其特征在于,应用于消息队列微服务,所述消息队列微服务设置有与应用服务相同的连接器,所述消息队列的访问方法包括:
2.如权利要求1所述的消息队列的访问方法,其特征在于,所述基于所述消息队列微服务的连接器接收应用服务的连接器发送的通用消息的步骤之前,还包括:
3.如权利要求2所述的消息队列的访问方法,其特征在于,所述微服务信息至少包括微服务名称、微服务地址和微服务端口,所述向所述服务注册中心注册所述消息队列微服务对应的微服务信息的步骤包括:
4.如权利要求2所述的消息队列的访问方法,其特征在于,所述向所述服务注册中心注册所述消息队列微服务对应的微服务信息的步骤之后,还包括:
5.如权利要求1所述的消息队列的访问方法,其特征在于,所述解析所述通用消息,得到所述应用服务待访问的目标消息队列的步骤包括:
6.一种消息队列的访问方法,其特征在于,应用于应用服务,所述应用服务设置有连接器,所述消息队列的访问方法包括:
7.如权利要求6所述的消息队列的访问方法,其特征在于,所述消息属性信息包括:消
8.一种消息队列的访问系统,其特征在于,所述消息队列的访问系统包括:信息获取模块,封装模块和发送模块,其中,
9.一种消息队列的访问设备,其特征在于,所述消息队列的访问设备包括:存储器、处理器及存储在所述存储器上并在所述处理器上运行的消息队列的访问程序,所述消息队列的访问程序被所述处理器执行时实现如权利要求1-7中任一项所述的消息队列的访问方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有消息队列的访问程序,所述消息队列的访问程序被处理器执行时实现权利要求1-7中任一项所述的消息队列的访问方法的步骤。
...【技术特征摘要】
1.一种消息队列的访问方法,其特征在于,应用于消息队列微服务,所述消息队列微服务设置有与应用服务相同的连接器,所述消息队列的访问方法包括:
2.如权利要求1所述的消息队列的访问方法,其特征在于,所述基于所述消息队列微服务的连接器接收应用服务的连接器发送的通用消息的步骤之前,还包括:
3.如权利要求2所述的消息队列的访问方法,其特征在于,所述微服务信息至少包括微服务名称、微服务地址和微服务端口,所述向所述服务注册中心注册所述消息队列微服务对应的微服务信息的步骤包括:
4.如权利要求2所述的消息队列的访问方法,其特征在于,所述向所述服务注册中心注册所述消息队列微服务对应的微服务信息的步骤之后,还包括:
5.如权利要求1所述的消息队列的访问方法,其特征在于,所述解析所述通用消息,得到所述应用服务待访问的目标消息队列的步骤包括:
6.一种消息队列的访问方法,其特征在于,应用于应用服务,所述应用服务设置有...
【专利技术属性】
技术研发人员:潘文博,李伟,李然,吴正坤,白杨,张琳,高瑞娟,安志新,刘玉梅,
申请(专利权)人:中移动信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。