消息处理方法、装置、设备及存储介质制造方法及图纸

技术编号:29132729 阅读:20 留言:0更新日期:2021-07-02 22:28
本发明专利技术涉及大数据技术领域,公开了一种消息处理方法、装置、设备及存储介质,用于提高业务维护效率和代码可读性,并提高消息处理效率。消息处理方法包括:通过预设的消费者工具类按照环境配置对象生成业务交换机和业务消息队列;通过业务交换机将多个已生产消息分别传入至对应的业务消息队列中;通过预设的订阅者将实时从业务消息队列推送的至少一个已生产消息缓存至本地服务中的预设的阻塞队列中;每隔预设的等待时长从预设的阻塞队列中批量读取每批次消息数据,在预设的消费者线程池中创建实际消费者线程,并通过实际消费者线程对每批次消息数据进行业务处理。此外,本发明专利技术还涉及区块链技术,每批次消息数据可存储于区块链节点中。

【技术实现步骤摘要】
消息处理方法、装置、设备及存储介质
本专利技术涉及大数据技术的批量更新领域,尤其涉及一种消息处理方法、装置、设备及存储介质。
技术介绍
消息队列中间件是分布式系统中重要的组件,主要解决应用解耦、异步消息、流量削峰和消息通讯等问题,实现高性能、高可用、可伸缩和最终一致性架构。消息队列rabbitmq是常见的消息队列中间件之一,目前在市面上只提供基础的rabbitmq方法调用,常见的方法调用依赖包包括基于微框架springboot的高级消息队列协议amqp和基于安全工具包springcloud的消息驱动stream-rabbit。而amqp依赖包直接使用在项目中,由于amqp的调用方法入参为字符串,而非对象,使得创建消息队列的方法需要逐一调用或在一个类中逐个申明,不仅代码量大,而且通过类申明的方式无法根据互联网协议地址控制消费服务器,导致业务维护成本高和业务维护效率低,并且现有的消息队列缺少可控的批量消费消息,存在服务器资源浪费和消息吞吐率低的问题。
技术实现思路
本专利技术提供了一种消息处理方法、装置、设备及存储介质,用于提高业务维护效率和代码可读性,并提高消息处理效率。为实现上述目的,本专利技术第一方面提供了一种消息处理方法,包括:实例化环境配置对象,通过预设的消费者工具类按照所述环境配置对象生成业务交换机和业务消息队列,并对所述业务交换机和所述业务消息队列建立对应的绑定关系,所述业务消息队列为实时消息队列或延迟消息队列;通过预设的消息中间件将已生产消息传入至所述业务交换机,通过所述业务交换机按照所述绑定关系将所述已生产消息传入至所述业务消息队列中,当所述已生产消息在所述延迟消息队列中等待预设的延迟发送时长时,将所述延迟发送时长到期的已生产消息传入至所述实时消息队列中,同一延迟消息队列对应的延迟发送时长相同;通过预设的订阅者接收所述实时消息队列推送的至少一个已生产消息,并将所述至少一个已生产消息缓存至预设的阻塞队列中;每隔预设的等待时长从所述预设的阻塞队列中批量读取每批次消息数据,在预设的消费者线程池中创建实际消费者线程,通过所述实际消费者线程对所述每批次消息数据进行业务处理。可选的,在本专利技术第一方面的第一种实现方式中,所述实例化环境配置对象,通过预设的消费者工具类按照所述环境配置对象生成业务交换机和业务消息队列,并对所述业务交换机和所述业务消息队列建立对应的绑定关系,所述业务消息队列为实时消息队列或延迟消息队列,包括:实例化环境配置对象,并启动预设的消费者工具类,所述环境配置对象包括预设的实时交换机名、预设的实时消息队列名、预设的延迟交换机名、预设的延迟消息队列名和预设的延迟发送时长,所述预设的延迟发送时长与预设的队列序号规则一一对应;通过所述预设的消费者工具类按照所述预设的实时交换机名、所述预设的延迟交换机名、所述预设的实时消息队列名和所述预设的延迟消息队列名生成业务交换机和业务消息队列,所述业务交换机包括实时交换机和延迟交换机,所述业务消息队列包括实时消息队列和延迟消息队列;基于所述预设的队列序号规则和所述队列序号规则对应的延迟发送时长,分别设置延迟消息队列的延迟序号和延迟参数,并对所述业务交换机和所述业务消息队列建立对应的绑定关系。可选的,在本专利技术第一方面的第二种实现方式中,所述通过预设的消息中间件将已生产消息传入至所述业务交换机,通过所述业务交换机按照所述绑定关系将所述已生产消息传入至所述业务消息队列中,当所述已生产消息在所述延迟消息队列中等待预设的延迟发送时长时,将所述延迟发送时长到期的已生产消息传入至所述实时消息队列中,同一延迟消息队列对应的延迟发送时长相同,包括:接收预设的生产者工具类发送的已生产消息,通过预设的消息中间件将所述已生产消息传入至所述业务交换机中,所述已生产消息携带有期望消费时效,所述期望消费时效用于指示已生产消息为实时消息或延迟消息;基于所述期望消费时效确定所述已生产消息对应的消息类别,根据所述消息类别从所述业务交换机中匹配对应的目标交换机,所述目标交换机为实时交换机或延迟交换机;通过所述目标交换机按照所述绑定关系将所述已生产消息传入至对应的业务消息队列中,同一延迟消息队列对应的延迟发送时长相同;当所述已生产消息在所述延迟消息队列中等待预设的延迟发送时长时,将所述延迟发送时长到期的已生产消息传入至所述实时交换机,并通过所述实时交换机将所述延迟发送时长到期的已生产消息存入至所述实时消息队列中。可选的,在本专利技术第一方面的第三种实现方式中,所述通过预设的订阅者接收所述实时消息队列推送的至少一个已生产消息,并将所述至少一个已生产消息缓存至预设的阻塞队列中,包括:通过预设的订阅者接收所述实时消息队列推送的至少一个已生产消息,并对每个已生产消息进行数据格式转换,得到转换后的消息数据集;将所述转换后的消息数据集写入至预设的阻塞队列中,所述预设的阻塞队列为内存缓冲区。可选的,在本专利技术第一方面的第四种实现方式中,所述每隔预设的等待时长从所述预设的阻塞队列中批量读取每批次消息数据,在预设的消费者线程池中创建实际消费者线程,通过所述实际消费者线程对所述每批次消息数据进行业务处理,包括:每隔预设的等待时长根据预设的每批次最大消费数量,从所述预设的阻塞队列中批量读取每批次消息数据,每批次消息数据的数量小于或者等于所述预设的每批次最大消费数量;按照预设的最大消费者线程数量在预设的消费者线程池中创建实际消费者线程,并通过所述实际消费者线程处理所述每批次消息数据,得到处理结果,并将所述处理结果发送至消息中间件,以使得所述消息中间件传入每个已生产消息对应的消息状态。可选的,在本专利技术第一方面的第五种实现方式中,在所述每隔预设的等待时长从所述预设的阻塞队列中批量读取每批次消息数据,在预设的消费者线程池中创建实际消费者线程,通过所述实际消费者线程对所述每批次消息数据进行业务处理之后,所述消息处理方法还包括:通过预设的配置变更线程对所述环境配置对象进行周期扫描;当检测到所述环境配置对象存在配置信息变更时,获取变更后的环境配置对象,并按照所述变更后的环境配置对象传入预设的订阅者对应的订阅状态,并变更所述预设的消费者线程池大小。可选的,在本专利技术第一方面的第六种实现方式中,在所述每隔预设的等待时长从所述预设的阻塞队列中批量读取每批次消息数据,在预设的消费者线程池中创建实际消费者线程,通过所述实际消费者线程对所述每批次消息数据进行业务处理之后,所述消息处理方法还包括:初始化实际消费者线程的链路标识;基于所述实际消费者线程的链路标识,将实际消费者线程的所有消费过程数据分别记录至预设的当前线程局部变量和预设的日志打印对象中。本专利技术第二方面提供了一种消息处理装置,包括:生成模块,用于实例化环境配置对象,通过预设的消费者工具类按照所述环境配置对象生成业务交换机和业务消息队列,并对所述业务交换机和所述业务消息队列建立对应的绑定关系,所述业务消息队列为实时消息队列或延迟消息队列;传入模块,用于通过预设的消息中间件将已生产消息传入至所述业务交换机,通过所述业务交换机按照所述绑定关系将所述已生产消息传入本文档来自技高网...

【技术保护点】
1.一种消息处理方法,其特征在于,所述消息处理方法包括:/n实例化环境配置对象,通过预设的消费者工具类按照所述环境配置对象生成业务交换机和业务消息队列,并对所述业务交换机和所述业务消息队列建立对应的绑定关系,所述业务消息队列为实时消息队列或延迟消息队列;/n通过预设的消息中间件将已生产消息传入至所述业务交换机,通过所述业务交换机按照所述绑定关系将所述已生产消息传入至所述业务消息队列中,当所述已生产消息在所述延迟消息队列中等待预设的延迟发送时长时,将所述延迟发送时长到期的已生产消息传入至所述实时消息队列中,同一延迟消息队列对应的延迟发送时长相同;/n通过预设的订阅者接收所述实时消息队列推送的至少一个已生产消息,并将所述至少一个已生产消息缓存至预设的阻塞队列中;/n每隔预设的等待时长从所述预设的阻塞队列中批量读取每批次消息数据,在预设的消费者线程池中创建实际消费者线程,通过所述实际消费者线程对所述每批次消息数据进行业务处理。/n

【技术特征摘要】
1.一种消息处理方法,其特征在于,所述消息处理方法包括:
实例化环境配置对象,通过预设的消费者工具类按照所述环境配置对象生成业务交换机和业务消息队列,并对所述业务交换机和所述业务消息队列建立对应的绑定关系,所述业务消息队列为实时消息队列或延迟消息队列;
通过预设的消息中间件将已生产消息传入至所述业务交换机,通过所述业务交换机按照所述绑定关系将所述已生产消息传入至所述业务消息队列中,当所述已生产消息在所述延迟消息队列中等待预设的延迟发送时长时,将所述延迟发送时长到期的已生产消息传入至所述实时消息队列中,同一延迟消息队列对应的延迟发送时长相同;
通过预设的订阅者接收所述实时消息队列推送的至少一个已生产消息,并将所述至少一个已生产消息缓存至预设的阻塞队列中;
每隔预设的等待时长从所述预设的阻塞队列中批量读取每批次消息数据,在预设的消费者线程池中创建实际消费者线程,通过所述实际消费者线程对所述每批次消息数据进行业务处理。


2.根据权利要求1所述的消息处理方法,其特征在于,所述实例化环境配置对象,通过预设的消费者工具类按照所述环境配置对象生成业务交换机和业务消息队列,并对所述业务交换机和所述业务消息队列建立对应的绑定关系,所述业务消息队列为实时消息队列或延迟消息队列,包括:
实例化环境配置对象,并启动预设的消费者工具类,所述环境配置对象包括预设的实时交换机名、预设的实时消息队列名、预设的延迟交换机名、预设的延迟消息队列名和预设的延迟发送时长,所述预设的延迟发送时长与预设的队列序号规则一一对应;
通过所述预设的消费者工具类按照所述预设的实时交换机名、所述预设的延迟交换机名、所述预设的实时消息队列名和所述预设的延迟消息队列名生成业务交换机和业务消息队列,所述业务交换机包括实时交换机和延迟交换机,所述业务消息队列包括实时消息队列和延迟消息队列;
基于所述预设的队列序号规则和所述队列序号规则对应的延迟发送时长,分别设置延迟消息队列的延迟序号和延迟参数,并对所述业务交换机和所述业务消息队列建立对应的绑定关系。


3.根据权利要求1所述的消息处理方法,其特征在于,所述通过预设的消息中间件将已生产消息传入至所述业务交换机,通过所述业务交换机按照所述绑定关系将所述已生产消息传入至所述业务消息队列中,当所述已生产消息在所述延迟消息队列中等待预设的延迟发送时长时,将所述延迟发送时长到期的已生产消息传入至所述实时消息队列中,同一延迟消息队列对应的延迟发送时长相同,包括:
接收预设的生产者工具类发送的已生产消息,通过预设的消息中间件将所述已生产消息传入至所述业务交换机中,所述已生产消息携带有期望消费时效,所述期望消费时效用于指示已生产消息为实时消息或延迟消息;
基于所述期望消费时效确定所述已生产消息对应的消息类别,根据所述消息类别从所述业务交换机中匹配对应的目标交换机,所述目标交换机为实时交换机或延迟交换机;
通过所述目标交换机按照所述绑定关系将所述已生产消息传入至对应的业务消息队列中,同一延迟消息队列对应的延迟发送时长相同;
当所述已生产消息在所述延迟消息队列中等待预设的延迟发送时长时,将所述延迟发送时长到期的已生产消息传入至所述实时交换机,并通过所述实时交换机将所述延迟发送时长到期的已生产消息存入至所述实时消息队列中。


4.根据权利要求1所述的消息处理方法,其特征在于,所述通过预设的订阅者接收所述实时消息队列推送的至少一个已生产消息,并将所述至少一个已生产消息缓存至预设的阻塞队列中,包括:
通过预设的订阅者接收所述实时消息队列推送的至少一个已生...

【专利技术属性】
技术研发人员:邱昶卿
申请(专利权)人:平安国际智慧城市科技股份有限公司
类型:发明
国别省市:广东;44

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

1