logo好方法网

消息处理方法、装置、电子设备及可读存储介质


技术摘要:
本发明实施例提供了一种消息处理方法、装置、电子设备及可读存储介质,其中的方法包括:接收生产服务器发送的第一消息,并将第一消息存储在与第一消息的业务类型对应的消息队列中,从消息队列中获取M个第一消息,采用M个第一线程将各第一消息写入到与第一目标业务标识  全部
背景技术:
由于基于微服务架构的系统具有易于开发和维护等特点,目前已应用在较大项目 的开发。同时为了实现微服务之间耦合、异步消息处理、限流削峰等功能,通常应用生产消 费模式。 生产消费模式具体为:发布消息的服务器(生产服务器)向生产服务器集群中的消 息队列(MQ,Message  Queue)发布消息,一个消息队列即一个缓冲区,消费消息的服务器(消 费服务器)从消息队列中取出消息,并对消息进行处理,处理完一个消息再继续取下一个消 息。其中,该生产服务器集群中的各存储服务器中可以设置有一个消息队列或多个消息队 列。 然而,当由于某种原因(例如,消费服务器处理消息耗时较长)使消息队列中大量 消息滞留,此种情况下则需要生产服务器必须暂停等待一下(即阻塞生产者线程),从而影 响消息队列中的消息的消费效率。
技术实现要素:
本发明实施例的目的在于提供一种消息处理方法、装置、电子设备及可读存储介 质,以实现提高消息队列中的消息的消费效率。具体技术方案如下: 在本发明实施的第一方面,首先提供了一种消息处理方法,执行于缓冲服务器,包 括: 接收生产服务器发送的第一消息,并将所述第一消息存储在与所述第一消息的业 务类型对应的消息队列中; 从所述消息队列中获取M个第一消息,并采用M个第一线程将所述M个第一消息写 入到与第一目标业务标识对应的第一内存缓冲队列,其中,所述第一目标业务标识为与所 述第一消息的业务类型对应的标识,所述M为大于等于1的整数; 确定与所述第一目标业务标识关联的第一目标服务地址; 采用N个第二线程读取所述第一内存缓冲队列中的N个第一消息,并向所述第一目 标服务地址对应的目标服务器发送N个第一请求消息,以调用N次所述目标服务器对应的服 务对所述N个第一消息进行处理,其中,每个所述第一请求消息中包括一个第一消息,所述N 为大于所述M的整数。 在本发明实施的第二方面,还提供了一种消息处理装置,设置于缓冲服务器,包 括: 接收模块,用于接收生产服务器发送的第一消息,并将所述第一消息存储在与所 述第一消息的业务类型对应的消息队列中; 4 CN 111585867 A 说 明 书 2/13 页 获取模块,用于从所述消息队列中获取M个第一消息,并采用M个第一线程将所述M 个第一消息写入到与第一目标业务标识对应的第一内存缓冲队列,其中,所述第一目标业 务标识为与所述第一消息的业务类型对应的标识,所述M为大于等于1的整数; 确定模块,用于确定与所述第一目标业务标识关联的第一目标服务地址; 发送模块,用于采用N个第二线程读取所述第一内存缓冲队列中的N个第一消息, 并向所述第一目标服务地址对应的目标服务器发送N个第一请求消息,以调用N次所述目标 服务器对应的服务对所述N个第一消息进行处理,其中,每个所述第一请求消息中包括一个 第一消息,所述N为大于所述M的整数。 在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读 存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的消息处 理方法。 在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计 算机上运行时,使得计算机执行上述任一所述的消息处理方法。 本发明实施例提供的消息处理方法,通过本实施例提供的消息处理方法,通过接 收生产服务器发送的第一消息,并将所述第一消息存储在与所述第一消息的业务类型对应 的消息队列中,从消息队列中获取M个第一消息,采用M个第一线程将M个第一消息写入到与 第一目标业务标识对应的第一内存缓冲队列,确定与第一目标业务标识关联的第一目标服 务地址,采用N个第二线程读取第一内存缓冲队列中的N个第一消息,并向第一目标服务地 址对应的目标服务器发送N个第一请求消息,以调用N次目标服务器对应的服务对N个第一 消息进行处理。由于N大于M,也即从第一内存缓冲队列中读取第一消息的第二线程的个数 大于向第一内存缓冲队列中写入第一消息的第一线程的个数,从而可以实现较快的读取操 作,也即从第一内存缓冲队列读取第一消息的速度大于将第一消息写入到第一内存缓冲队 列的速度,避免第一内存缓冲队列中的第一消息的积压,进而可以保证缓冲服务器可以从 消息队列中持续获取第一消息,并将获取的第一消息写入到第一内存缓冲队列,因此,可以 避免消息队列中的第一消息的积压,提高消息队列的消费效率。并且,缓冲服务器不负责第 一消息的处理,而是由目标服务器对应的业务对第一消息进行处理,也即缓冲服务器向目 标服务器发送N个第一请求消息后,可以接着从第一内存缓冲队列中取第一消息,不用等待 目标服务器是否处理完第一消息。因此,可以在一定程度上进一步提高消息队列中的消息 的消费效率。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍。 图1为现有技术中的一种系统架构图; 图2为本发明实施例中提供的一种系统架构图; 图3为本发明实施例中提供的一种消息处理方法的步骤流程图; 图4为本发明实施例中提供的另一种消息处理方法的步骤流程图; 图5为本发明实施例中提供的一种消息处理装置的结构示意图; 图6为本发明实施例中提供的一种电子设备的结构示意图。 5 CN 111585867 A 说 明 书 3/13 页
分享到:
收藏