System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数字信息传输,尤其涉及一种消费信息处理方法、终端、设备及存储介质。
技术介绍
1、目前分布式环境下事件中心消费平台,如:kafka,rocketmq和rabbitmq,主要是由生产者、消息服务端和消费者组成,它们互相之间通过消息队列(message queue,简称mq)进行信息传输。生产者根据消费事件生成消费消息,然后将消费信息发送到消息服务端,然后消息服务端通过协议进行广播或单播,从而把消费消息发送给消费者,消费者根据广播获取到消费信息。在消费事件发生后,消费者无法自主选择广播或单播模式。
2、另外,在云原生环境下,由于容器节点的ip是动态生成的,因此使用kafka的动态消费者组id广播方式,会导致消费者组id与节点很难一一对应,造成维护难度增加,从而导致消息大量堆积。
技术实现思路
1、有鉴于此,本专利技术的目的是为了克服现有技术中的不足,提供一种消费信息处理方法、终端、设备及存储介质。
2、本专利技术提供如下技术方案:
3、第一方面,本申请提供了一种消费信息处理方法,应用于消费者终端,包括:
4、将多个消费者按照业务类型划分为多个socket组,将每个所述socket组注册到kafka消息队列中并订阅kafka;同一个所述socket组包括一个目标消费者和多个成员消费者;
5、所述目标消费者获取kafka消息,根据所述kafka消息生成组广播协议消息并发送给同一个socket组内的每个所述成员消费者;
6、所述目标消费者接收所述成员消费者根据所述组广播协议消息生成的回调消息;
7、所述目标消费者根据接收的所述回调消息数量,确定是否提交kafka offset。
8、一种实施方式中,所述根据所述kafka消息生成组广播协议消息并发送给同一个socket组内的每个成员消费者,包括:
9、根据所述kafka消息确定目标广播方式,所述目标广播方式包括组播发送和循环单播发送;
10、将所述kafka消息生成组广播协议消息,通过所述目标广播方式发送给同一个socket组内的每个成员消费者。
11、一种实施方式中,所述将所述kafka消息生成组广播协议消息,通过所述目标广播方式发送给同一个socket组内的每个成员消费者,包括:
12、若所述目标广播方式为组播发送,则通过socket发送端将所述组广播协议消息发送给每个所述成员消费者。
13、一种实施方式中,所述将所述kafka消息生成组广播协议消息,通过所述目标广播方式发送给同一个socket组内的每个成员消费者,包括:
14、若所述目标广播方式为循环单播发送,则通过成员节点获取机制获取socket组内每个成员消费者信息,并根据每个所述成员消费者信息生成成员列表;
15、根据所述成员列表循环单播发送所述组广播协议消息。
16、一种实施方式中,所述通过成员节点获取机制获取socket组内每个成员消费者信息之后,还包括:
17、根据所述成员消费者信息判断成员消费者是否发生变化;
18、若发生变化,则从所述kafka消息队列中获取当前成员消费者信息,根据所述当前成员消费者信息生成当前成员列表;
19、根据所述当前成员列表循环单播发送所述组广播协议消息。
20、一种实施方式中,所述目标消费者接收所述成员消费者根据所述组广播协议消息生成的回调消息,包括:
21、所述目标消费者在组广播协议消息的消息首位插入回调标识;所述回调标识包括第一回调标识和第二回调标识,所述第一回调标识表示不发送回调消息,所述第二回调标识表示发送回调消息;
22、所述目标消费者接收所述成员消费者根据所述回调标识的生成的回调消息。
23、一种实施方式中,所述目标消费者根据接收的所述回调消息数量,确定是否提交kafka offset,包括:
24、每接收到一条所述回调消息,则记录当前接收的所述回调消息的总数量,判断所述总数量是否满足aso机制设置的数量条件;
25、若不满足所述数量条件,则将所述回调消息进行缓存,并将所述总数量增加一;
26、若满足所述数量条件,则提交kafka offset,并删除所述缓存。
27、第二方面,本申请提供了一种消费者终端,包括:
28、划分模块,用于将多个消费者按照业务类型划分为多个socket组,将每个所述socket组注册到kafka消息队列中并订阅kafka;同一个所述socket组包括一个目标消费者和多个成员消费者;
29、广播模块,用于获取kafka消息,根据所述kafka消息生成组广播协议消息并发送给同一个socket组内的每个所述成员消费者;
30、接收模块,用于接收所述成员消费者根据所述组广播协议消息生成的回调消息;
31、回调模块,用于根据接收的所述回调消息数量,确定是否提交kafka offset。
32、第三方面,本申请提供了一种计算机设备,所述计算机设备包括存储器和至少一个处理器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施如第一方面所述的消费信息处理方法。
33、第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时,实现如第一方面所述的消费信息处理方法。
34、本专利技术的实施例具有如下有益效果:
35、本专利技术提供的消费信息处理方法,无需动态生成与消费者组id对应的节点,维护难度低,不会导致消息大量堆积。
36、为使本专利技术的上述目的、特征和优点能更明显和易懂,下文特举较佳实施例,并配合所附附图,做详细说明如下。
本文档来自技高网...【技术保护点】
1.一种消费信息处理方法,应用于消费者终端,其特征在于,包括:
2.根据权利要求1所述的消费信息处理方法,其特征在于,所述根据所述kafka消息生成组广播协议消息并发送给同一个socket组内的每个成员消费者,包括:
3.根据权利要求2所述的消费信息处理方法,其特征在于,所述将所述kafka消息生成组广播协议消息,通过所述目标广播方式发送给同一个socket组内的每个成员消费者,包括:
4.根据权利要求2所述的消费信息处理方法,其特征在于,所述将所述kafka消息生成组广播协议消息,通过所述目标广播方式发送给同一个socket组内的每个成员消费者,包括:
5.根据权利要求4所述的消费信息处理方法,其特征在于,所述通过成员节点获取机制获取socket组内每个成员消费者信息之后,还包括:
6.根据权利要求1所述的消费信息处理方法,其特征在于,所述目标消费者接收所述成员消费者根据所述组广播协议消息生成的回调消息,包括:
7.根据权利要求1所述的消费信息处理方法,其特征在于,所述目标消费者根据接收的所述回调消息数量,
8.一种消费者终端,其特征在于,包括:
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和至少一个处理器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施如权利要求1至7中任一项所述的消费信息处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时,实现如权利要求1至7中任一项所述的消费信息处理方法。
...【技术特征摘要】
1.一种消费信息处理方法,应用于消费者终端,其特征在于,包括:
2.根据权利要求1所述的消费信息处理方法,其特征在于,所述根据所述kafka消息生成组广播协议消息并发送给同一个socket组内的每个成员消费者,包括:
3.根据权利要求2所述的消费信息处理方法,其特征在于,所述将所述kafka消息生成组广播协议消息,通过所述目标广播方式发送给同一个socket组内的每个成员消费者,包括:
4.根据权利要求2所述的消费信息处理方法,其特征在于,所述将所述kafka消息生成组广播协议消息,通过所述目标广播方式发送给同一个socket组内的每个成员消费者,包括:
5.根据权利要求4所述的消费信息处理方法,其特征在于,所述通过成员节点获取机制获取socket组内每个成员消费者信息之后,...
【专利技术属性】
技术研发人员:张睿,马晓超,韩晓光,
申请(专利权)人:四川蜀信云茶信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。