CN117255076A - 消费环境隔离方法、装置、计算机设备及存储介质 - Google Patents
消费环境隔离方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117255076A CN117255076A CN202311149505.XA CN202311149505A CN117255076A CN 117255076 A CN117255076 A CN 117255076A CN 202311149505 A CN202311149505 A CN 202311149505A CN 117255076 A CN117255076 A CN 117255076A
- Authority
- CN
- China
- Prior art keywords
- consumption
- message
- subscribed
- instance
- environment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000002955 isolation Methods 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 31
- 238000012216 screening Methods 0.000 claims description 4
- 230000004888 barrier function Effects 0.000 claims 1
- 238000004519 manufacturing process Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及一种消费环境隔离方法,包括:在RocketMQ的集群消费模式下,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息;根据所述主题信息,确定所述已订阅消息对应的消息类型,所述消息类型包括外部消息和内部消息;若所述消息类型为所述外部消息,则根据预设的配置项开关,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费;若所述消息类型为所述内部消息,则获取所述已订阅消息的订阅信息,根据所述订阅信息和所述标签信息,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费。本申请避免了消息在不正确的环境中消费可能出现的结果无效或者报错的情况。
Description
技术领域
本申请涉及环境隔离领域及金融科技领域,应用于基于消息中间件RocketMQ对消息的消费环境进行隔离的金融服务场景中,尤其涉及一种消费环境隔离方法、装置、计算机设备及存储介质。
背景技术
在金融行业中,业务的相关服务一般要求持续、稳定以及容错能力强,还需要对节点故障能够做到快速屏蔽影响,并且快速恢复,而RocketMQ的特性使其可以在金融场景中得到很好的应用。
RocketMQ是阿里巴巴的一款纯Java、分布式、队列模型的开源消息中间件,可以支持事务消息、顺序消息、批量消息、定时消息、消息回溯等功能,其广泛应用于分布式系统中,具有实时、高效、可靠性强等特点。然而,RocketMQ并不具有环境隔离机制,在分布式系统的部署中一般存在有生产环境和灰度环境,同一模块的生产环境实例和灰度环境实例的消费者标识相同,在集群消费的消费模式下,当生产者发布消息时,就会由生产环境实例或灰度环境实例中的一个随机进行消费,无法实现消息的消费环境隔离。
由此产生的后果是,当外部系统发布消息时,若由生产环境实例对该消息进行消费,则达不到很好的灰度验证效果;当一个模块的生产环境实例发布消息时,若由另一个模块的灰度环境实例对该消息进行消费,则会导致报错。因此,有必要提出一种在RocketMQ的基础上可以对消息的消费环境进行隔离的解决方案。
发明内容
本申请实施例的目的在于提出一种消费环境隔离方法、装置、计算机设备及存储介质,以解决在RocketMQ的基础上对于消息的消费环境无法进行隔离的技术问题。
为了解决上述技术问题,本申请实施例提供一种消费环境隔离方法,采用了如下所述的技术方案:
在RocketMQ的集群消费模式下,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息;
根据所述主题信息,确定所述已订阅消息对应的消息类型,所述消息类型包括外部消息和内部消息;
若所述消息类型为所述外部消息,则根据预设的配置项开关,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费;
若所述消息类型为所述内部消息,则获取所述已订阅消息的订阅信息,根据所述订阅信息和所述标签信息,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费。
进一步的,所述获取所述已订阅消息的订阅信息,根据所述订阅信息和所述标签信息,在所述目标消费组中确定目标消费实例的步骤,具体包括:
根据所述订阅信息,生成所述已订阅消息对应的环境标识,并将所述环境标识填充至所述标签信息中;
将所述已订阅消息发送至所述目标消费组,根据所述环境标识在所述目标消费组的各个消费实例中确定所述目标消费实例。
进一步的,所述将所述已订阅消息发送至所述目标消费组,根据所述环境标识在所述目标消费组的各个消费实例中确定所述目标消费实例的步骤,具体包括:
将所述已订阅消息发送至各个所述消费实例;
根据所述环境标识对各个所述消费实例对应的消费环境进行筛选,确定与所述环境标识匹配的目标消费环境;
将所述目标消费环境对应的消费实例作为所述目标消费实例。
进一步的,所述根据预设的配置项开关,在所述目标消费组中确定目标消费实例的步骤,具体包括:
向所述目标消费组中的各个消费实例发送所述已订阅消息;
通过所述配置项开关,控制各个所述消费实例对所述已订阅消息进行接收或者拦截;
将接收所述已订阅消息的消费实例作为所述目标消费实例。
进一步的,在所述向所述目标消费组中的各个消费实例发送所述已订阅消息的步骤之前,还包括:
当接收到携带有开关信息的配置指令时,根据所述开关信息对所述目标消费组进行配置,得到所述配置项开关;
根据所述配置项开关确定各个所述消费实例的配置项开启或者关闭;
以使得向各个所述消费实例发送消息时,配置项开启的消费实例对所述消息进行接收,配置项关闭的消费实例对所述消息进行拦截。
进一步的,在所述在RocketMQ的集群消费模式下,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息的步骤之前,还包括:
获取标识更新信息;
根据所述标识更新信息对所述目标消费组中的各个消费实例对应的消费者标识进行更新;
以使得不同消费实例对应不同消费者标识。
进一步的,在所述在RocketMQ的集群消费模式下,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息的步骤之后,还包括:
当向所述目标消费组发送所述已订阅消息时;
根据所述不同消费者标识,确定各个所述消费实例具有所述已订阅消息对应的消费权限。
为了解决上述技术问题,本申请实施例还提供一种消费环境隔离装置,采用了如下所述的技术方案:
一种消费环境隔离装置,包括:
获取模块,用于在RocketMQ的集群消费模式下,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息;
确定模块,用于根据所述主题信息,确定所述已订阅消息对应的消息类型,所述消息类型包括外部消息和内部消息;
外部消息消费模块,用于若所述消息类型为所述外部消息,则根据预设的配置项开关,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费;
内部消息消费模块,用于若所述消息类型为所述内部消息,则获取所述已订阅消息的订阅信息,根据所述订阅信息和所述标签信息,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的消费环境隔离方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的消费环境隔离方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请公开的消费环境隔离方法,通过在RocketMQ的集群消费模式下,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息;根据所述主题信息,确定所述已订阅消息对应的消息类型,所述消息类型包括外部消息和内部消息;若所述消息类型为所述外部消息,则根据预设的配置项开关,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费;若所述消息类型为所述内部消息,则获取所述已订阅消息的订阅信息,根据所述订阅信息和所述标签信息,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费。本申请通过先对消息类型进行区分,再针对不同类型的消息,采用不同的方式确定对消息进行消费的消费实例,从而可以控制消息的消费环境,确保消息在合适的环境中进行消费,提高了消费环境隔离的准确性,避免了消息在不正确的环境中消费可能出现的结果无效或者报错的情况。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2根据本申请的消费环境隔离方法的一个实施例的流程图;
图3是根据本申请的消费环境隔离装置的一个实施例的结构示意图;
图4是图3所示内部消息消费模块一种具体实施方式的结构示意图;
图5是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3(MPEG Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(MPEG Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的消费环境隔离方法一般由服务器执行,相应地,消费环境隔离装置一般设置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的消费环境隔离方法的一个实施例的流程图。所述的消费环境隔离方法,包括以下步骤:
步骤S201,在RocketMQ的集群消费模式下,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息;
在本实施例中,消费环境隔离方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式对数据进行接收和发送。需要指出的是,上述无线连接方式可以包括但不限于3G/4G/5G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
在本实施例中,消费环境隔离方法主要应用于RocketMQ的集群消费模式,为了实现消息的消费环境隔离,在RocketMQ的集群消费模式下,首先可以获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息。具体地,由于金融科技的相关服务对于系统的性能和稳定性的要求较高,因此需要应用到RocketMQ作为系统中的消息队列中间件,RocketMQ作为分布式系统中的重要组件,可以解决应用耦合的问题并进行异步消息处理,RocketMQ采用的是发布订阅模型,当consumer订阅了broker上的某个topic时,若producer发布该topic的消息到broker上时,consumer就能接收到该条消息,在集群消费模式下,接收并消费消息的为consumer集群,broker的每条消息只会被consumer集群内的任意一个consumer实例消费一次,因此,为了实现消息的消费环境隔离,需要先将进行消费环境隔离的consumer集群作为目标消费组,并获取由目标消费组订阅的携带有主题信息和标签信息的已订阅消息。
需要强调的是,一般而言,broker的每条消息在集群消费模式下会被consumer集群内的任意一个consumer实例随机消费,而本实施例为了进行消费环境隔离,控制消息的消费环境,需要保证一条消息可以被consumer集群中的每个consumer实例接收,就可以对不同的consumer实例进行预先处理,例如,由于一个consumer集群中的每个consumer实例的consumer-id相同,因此可以预先修改consumer-id,以确保不同的consumer实例的consumer-id不同,从而使得每个consumer实例都可以接收到同一条消息。
步骤S202,根据所述主题信息,确定所述已订阅消息对应的消息类型,所述消息类型包括外部消息和内部消息;
在本实施例中,获取已订阅消息后,即可根据已订阅消息携带的主题信息,确定已订阅消息对应的消息类型,其中,消息类型包括外部消息和内部消息。具体地,针对不同来源的消息可以采用不同的方式进行消费环境隔离,通过已订阅消息携带的主题信息,可以确定已订阅消息对应的消费类型,该主题信息即为已订阅消息的topic,消费类型包括了外部消息和内部消息,外部消息即为外部系统发布的消息,内部消息即为系统内部其他模块发布的消息,例如为了与外部消息进行区分,内部消息可以采用特定的topic,在获取已订阅消息后,根据已订阅消息的topic判定其为外部消息还是内部消息。
步骤S203,若所述消息类型为所述外部消息,则根据预设的配置项开关,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费;
在本实施例中,若已订阅消息的消息类型为外部消息,则可以根据预设的配置项开关,在目标消费组中确定目标消费实例,以通过目标消费实例对已订阅消息进行消费。具体地,目标消费组中包括了对应不同消费环境的消费实例,例如生产环境实例和灰度环境实例,而每个消费实例都对应了目标消费组代表的consumer集群中的一个consumer实例,当根据已订阅消息携带的主题信息确定消息类型为外部消息时,可以确定已订阅消息为外部系统发布的消息,由于外部系统发布的消息来源较为复杂,故而可以采用配置项开关的方式进行消费环境隔离,目标消费组存在预设的配置项开关,向目标消费组中的各个消费实例发送已订阅消息,即可通过配置项开关,控制各个消费实例对已订阅消息进行接收或者拦截,并将接收已订阅消息的消费实例作为目标消费实例,再通过目标消费实例对已订阅消息进行消费,从而可以根据预设的配置项开关控制已订阅消息的消费环境。
步骤S204,若所述消息类型为所述内部消息,则获取所述已订阅消息的订阅信息,根据所述订阅信息和所述标签信息,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费。
在本实施例中,若已订阅消息的消息类型为内部消息,则可以获取已订阅消息的订阅信息,并根据订阅信息和已订阅消息携带的标签信息,在目标消费组中确定目标消费实例,以通过目标消费实例对已订阅消息进行消费。具体地,当根据已订阅消息携带的主题信息确定消息类型为内部消息时,可以确定已订阅消息为系统内部其他模块发布的消息,此时,由于消息来源较为统一,可以获取已订阅消息的订阅信息,该订阅信息包括了订阅已订阅消息的相关环境信息,例如生产环境订阅和灰度环境订阅,获取订阅信息后,即可根据订阅信息生成已订阅消息对应的环境标识,并将环境标识填充至已订阅消息携带的标签信息中,标签信息代表了已订阅消息的tag,将环境标识填充至已订阅消息的tag后,将已订阅消息发送至目标消费组,就可以根据环境标识,在目标消费组的各个消费实例中确定消费环境与环境标识匹配的消费实例,作为目标消费实例,再通过目标消费实例对已订阅消息进行消费,从而可以根据订阅信息和标签信息控制已订阅消息的消费环境。
本申请通过先对消息类型进行区分,再针对不同类型的消息,采用不同的方式确定对消息进行消费的消费实例,从而可以控制消息的消费环境,确保消息在合适的环境中进行消费,提高了消费环境隔离的准确性,避免了消息在不正确的环境中消费可能出现的结果无效或者报错的情况。
在本实施例的一些可选的实现方式中,上述获取所述已订阅消息的订阅信息,根据所述订阅信息和所述标签信息,在所述目标消费组中确定目标消费实例的步骤包括:
根据所述订阅信息,生成所述已订阅消息对应的环境标识,并将所述环境标识填充至所述标签信息中;
将所述已订阅消息发送至所述目标消费组,根据所述环境标识在所述目标消费组的各个消费实例中确定所述目标消费实例。
在本实施例中,当根据已订阅消息携带的主题信息确定消息类型为内部消息时,可以获取已订阅消息的订阅信息,再根据订阅信息生成已订阅消息对应的环境标识,并将环境标识填充至已订阅消息携带的标签信息中,而后将已订阅消息发送至目标消费组,根据环境标识在目标消费组的各个消费实例中确定目标消费实例。具体地,消息类型为内部消息代表已订阅消息为系统内部其他模块发布的消息,消息来源较为统一,因此可以采用环境标识识别的方式,首先,可以获取已订阅消息的订阅信息,该订阅信息包括了订阅已订阅消息的相关环境信息,例如生产环境订阅和灰度环境订阅,根据订阅消息,即可确定已订阅消息属于生产环境订阅还是灰度环境订阅,其次,根据订阅消息生成已订阅消息对应的环境标识,若已订阅消息属于生产环境订阅,则生成代表生产环境订阅的环境标识;若已订阅消息属于灰度环境订阅,则生成代表灰度环境订阅的环境标识。在生成环境标识后,将环境标识填充至已订阅消息携带的标签信息中,再将已订阅消息发送至目标消费组的各个消费实例,就可以根据环境标识,对各个消费实例对应的消费环境进行筛选,确定与环境标识匹配的目标消费环境,并将目标消费环境对应的消费实例作为目标消费实例,从而通过目标消费实例对已订阅消息进行消费,以控制已订阅消息的消费环境。
本申请通过消息的订阅信息确定其对应的消费环境,针对系统内部其他模块发布的消息的消费环境进行控制,确保消息在合适的环境中进行消费,提高了消费环境隔离的准确性,避免了消息在不正确的环境中消费可能出现的结果无效或者报错的情况。
在本实施例的一些可选的实现方式中,上述将所述已订阅消息发送至所述目标消费组,根据所述环境标识在所述目标消费组的各个消费实例中确定所述目标消费实例的步骤包括:
将所述已订阅消息发送至各个所述消费实例;
根据所述环境标识对各个所述消费实例对应的消费环境进行筛选,确定与所述环境标识匹配的目标消费环境;
将所述目标消费环境对应的消费实例作为所述目标消费实例。
在本实施例中,将待消费环境对应的环境标识填充至已订阅消息携带的标签信息中后,即可将已订阅消息发送至目标消费组的各个消费实例,根据环境标识对各个消费实例对应的消费环境进行筛选,确定与环境标识匹配的目标消费环境,并将目标消费环境对应的消费实例作为目标消费实例。具体地,由于消息类型为内部消息,假设由模块B对模块A发布的已订阅消息进行消费,且模块A包括生产环境实例和灰度环境实例两个生产实例,模块B包括生产环境实例和灰度环境实例两个消费实例,那么针对模块A发布的已订阅消息,订阅信息包括了该消息由生产环境实例还是灰度环境实例发布,其携带的标签信息即tag可以添加环境标识,若已订阅消息由生产环境实例发布,则tag中可以添加生产订阅相关的环境标识“_prd”,例如topicA:messageTag_prd;若已订阅消息由灰度环境实例发布,则tag中可以添加灰度订阅相关的环境标识“_gray”,例如topicA:messageTag_gray。这样一来,模块B中生产环境实例和灰度环境实例接收到已订阅消息时,根据环境标识即可确定由模块A生产环境实例发布的消息仅会被模块B生产环境实例消费,模块A灰度环境实例发布的消息仅会被模块B灰度环境实例消费,不匹配环境的消息则会被自动拦截。
本申请在针对系统内部其他模块发布的消息进行消费环境隔离的情况下,通过环境标识实现了消费环境匹配的消费实例自动消费以及消费环境不匹配的消费实例自动拦截,确保消息在合适的环境中进行消费,提高了消费环境隔离的准确性。
在本实施例的一些可选的实现方式中,上述根据预设的配置项开关,在所述目标消费组中确定目标消费实例的步骤包括:
向所述目标消费组中的各个消费实例发送所述已订阅消息;
通过所述配置项开关,控制各个所述消费实例对所述已订阅消息进行接收或者拦截;
将接收所述已订阅消息的消费实例作为所述目标消费实例。
在本实施例中,当根据已订阅消息携带的主题信息确定消息类型为外部消息时,可以向目标消费组中的各个消费实例发送已订阅消息,而后通过预设的配置项开关,控制各个消费实例对已订阅消息进行接收或者拦截,再将接收已订阅消息的消费实例作为目标消费实例。具体地,消息类型为外部消息代表已订阅消息为外部系统发布的消息,消息来源较为复杂,因此可以根据预设的配置项开关对消费环境进行控制,例如,目标消费组包括生产环境实例和灰度环境实例两个消费实例,其中,根据预设的配置项开关,确定生产环境实例对应的配置项开启,灰度环境实例对应的配置项关闭,则生产环境实例可以接收已订阅消息,灰度环境实例对已订阅消息进行拦截,最终将生产环境实例作为目标消费实例,对已订阅消息进行消费。
本申请通过预设的配置项开关,针对外部系统发布的消息的消费环境进行控制,确保消息在合适的环境中进行消费,提高了消费环境隔离的准确性,避免了消息在不正确的环境中消费可能出现的结果无效或者报错的情况。
在本实施例的一些可选的实现方式中,在上述向所述目标消费组中的各个消费实例发送所述已订阅消息的步骤之前,还包括:
当接收到携带有开关信息的配置指令时,根据所述开关信息对所述目标消费组进行配置,得到所述配置项开关;
根据所述配置项开关确定各个所述消费实例的配置项开启或者关闭;
以使得向各个所述消费实例发送消息时,配置项开启的消费实例对所述消息进行接收,配置项关闭的消费实例对所述消息进行拦截。
在本实施例中,根据预设的配置项开关确定目标消费实例之前,当接收到携带有开关信息的配置指令时,可以根据开关信息对目标消费组进行配置,从而得到配置完成的配置项开关,并根据配置项开关确定各个消费实例的配置项开启或者关闭,以使得向各个消费实例发送消息时,配置项开启的消费实例对消息进行接收,配置项关闭的消费实例对消息进行拦截。具体地,对外部系统发布的消息的消费环境进行控制之前,可以对配置项开关进行配置,将配置完成的配置项开关作为后续预设的配置项开关,根据配置项开关可以确定目标消费组中各个消费实例的配置项为开启还是关闭,配置项为开启的消费实例可以接收消息,配置项为关闭的消费实例则对消息进行拦截。
本申请通过对配置项开关进行预先设置,使得后续可以根据预设的配置项开关控制外部系统发布的消息的消费环境,确保消息在合适的环境中进行消费,提高了消费环境隔离的准确性,避免了消息在不正确的环境中消费可能出现的结果无效或者报错的情况。
在本实施例的一些可选的实现方式中,在上述在RocketMQ的集群消费模式下,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息的步骤之前,还包括:
获取标识更新信息;
根据所述标识更新信息对所述目标消费组中的各个消费实例对应的消费者标识进行更新;
以使得不同消费实例对应不同消费者标识。
在本实施例中,运行消费环境隔离方法之前,可以获取标识更新信息,并根据标识更新信息对目标消费组中的各个消费实例对应的消费者标识进行更新,以使得不同消费实例对应不同消费者标识。具体地,在RocketMQ的集群消费模式下,一个consumer集群中的每个consumer实例具有相同的consumer-id,broker的每条消息只会被consumer集群内的任意一个consumer实例消费一次,本实施例的目标消费组即为consumer集群,目标消费组中的各个消费实例即为consumer实例,消费者标识即为consumer-id,由于消费者标识相同,后续已订阅消息只能被目标消费组中的任意一个消费实例随机进行消费,为了实现消费环境隔离,需要获取标识更新信息,根据标识更新信息对目标消费组中的各个消费实例对应的消费者标识进行更新,使得不同消费实例对应不同消费者标识,从而可以确保后续每个消费实例都可以对已订阅消息进行消费。
本申请通过修改同一消费集群中不同消费实例的消费者标识,使得不同的消费环境具有不同的标识,都可以对同一条消息进行消费,再对消费环境进行隔离,从而可以准确地控制消息的消费环境。
在本实施例的一些可选的实现方式中,在上述在RocketMQ的集群消费模式下,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息的步骤之后,还包括:
当向所述目标消费组发送所述已订阅消息时;
根据所述不同消费者标识,确定各个所述消费实例具有所述已订阅消息对应的消费权限。
在本实施例中,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息之后,当向目标消费组发送已订阅消息时,根据不同消费实例对应的不同消费者标识,可以确定各个消费实例具有已订阅消息对应的消费权限。具体地,若目标消费组中各个消费实例对应的消费者标识相同,则已订阅消息只能被目标消费组中的任意一个消费实例随机进行消费,经过上述对消费者标识经过更新的步骤后,目标消费组中的每个消费实例对应的消费者标识都不同,即可保证每个消费实例都可以接收到已订阅消息,并对已订阅消息进行消费,在此基础上,后续再进行消费环境的控制。
本申请使得同一消费集群中的不同消费实例可以通过不同消费者标识具有对消息的消费权限,确保了后续可以实现对消费环境进行隔离的方案,从而可以准确地控制消息的消费环境。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种消费环境隔离装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例所述的消费环境隔离装置300包括:获取模块301、确定模块302、外部消息消费模块303以及内部消息消费模块304。其中:
获取模块301,用于在RocketMQ的集群消费模式下,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息;
确定模块302,用于根据所述主题信息,确定所述已订阅消息对应的消息类型,所述消息类型包括外部消息和内部消息;
外部消息消费模块303,用于若所述消息类型为所述外部消息,则根据预设的配置项开关,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费;
内部消息消费模块304,用于若所述消息类型为所述内部消息,则获取所述已订阅消息的订阅信息,根据所述订阅信息和所述标签信息,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费。
本申请提供的消费环境隔离装置,通过先对消息类型进行区分,再针对不同类型的消息,采用不同的方式确定对消息进行消费的消费实例,从而可以控制消息的消费环境,确保消息在合适的环境中进行消费,提高了消费环境隔离的准确性,避免了消息在不正确的环境中消费可能出现的结果无效或者报错的情况。
在本实施例的一些可选的实现方式中,参阅图4,内部消息消费模块304还包括:
生成单元3041,用于根据所述订阅信息,生成所述已订阅消息对应的环境标识,并将所述环境标识填充至所述标签信息中;
确定单元3042,用于将所述已订阅消息发送至所述目标消费组,根据所述环境标识在所述目标消费组的各个消费实例中确定所述目标消费实例。
本申请提供的消费环境隔离装置,通过消息的订阅信息确定其对应的消费环境,针对系统内部其他模块发布的消息的消费环境进行控制,确保消息在合适的环境中进行消费,提高了消费环境隔离的准确性,避免了消息在不正确的环境中消费可能出现的结果无效或者报错的情况。
在本实施例的一些可选的实现方式中,确定单元3042还用于:
将所述已订阅消息发送至各个所述消费实例;
根据所述环境标识对各个所述消费实例对应的消费环境进行筛选,确定与所述环境标识匹配的目标消费环境;
将所述目标消费环境对应的消费实例作为所述目标消费实例。
本申请提供的消费环境隔离装置,在针对系统内部其他模块发布的消息进行消费环境隔离的情况下,通过环境标识实现了消费环境匹配的消费实例自动消费以及消费环境不匹配的消费实例自动拦截,确保消息在合适的环境中进行消费,提高了消费环境隔离的准确性。
在本实施例的一些可选的实现方式中,外部消息消费模块303还用于:
向所述目标消费组中的各个消费实例发送所述已订阅消息;
通过所述配置项开关,控制各个所述消费实例对所述已订阅消息进行接收或者拦截;
将接收所述已订阅消息的消费实例作为所述目标消费实例。
本申请提供的消费环境隔离装置,通过预设的配置项开关,针对外部系统发布的消息的消费环境进行控制,确保消息在合适的环境中进行消费,提高了消费环境隔离的准确性,避免了消息在不正确的环境中消费可能出现的结果无效或者报错的情况。
在本实施例的一些可选的实现方式中,消费环境隔离装置还用于:
当接收到携带有开关信息的配置指令时,根据所述开关信息对所述目标消费组进行配置,得到所述配置项开关;
根据所述配置项开关确定各个所述消费实例的配置项开启或者关闭;
以使得向各个所述消费实例发送消息时,配置项开启的消费实例对所述消息进行接收,配置项关闭的消费实例对所述消息进行拦截。
本申请提供的消费环境隔离装置,通过对配置项开关进行预先设置,使得后续可以根据预设的配置项开关控制外部系统发布的消息的消费环境,确保消息在合适的环境中进行消费,提高了消费环境隔离的准确性,避免了消息在不正确的环境中消费可能出现的结果无效或者报错的情况。
在本实施例的一些可选的实现方式中,消费环境隔离装置还用于:
获取标识更新信息;
根据所述标识更新信息对所述目标消费组中的各个消费实例对应的消费者标识进行更新;
以使得不同消费实例对应不同消费者标识。
本申请提供的消费环境隔离装置,通过修改同一消费集群中不同消费实例的消费者标识,使得不同的消费环境具有不同的标识,都可以对同一条消息进行消费,再对消费环境进行隔离,从而可以准确地控制消息的消费环境。
在本实施例的一些可选的实现方式中,消费环境隔离装置还用于:
当向所述目标消费组发送所述已订阅消息时;
根据所述不同消费者标识,确定各个所述消费实例具有所述已订阅消息对应的消费权限。
本申请提供的消费环境隔离装置,使得同一消费集群中的不同消费实例可以通过不同消费者标识具有对消息的消费权限,确保了后续可以实现对消费环境进行隔离的方案,从而可以准确地控制消息的消费环境。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图,5,图5为本实施例计算机设备基本结构框图。
所述计算机设备5包括通过系统总线相互通信连接存储器51、处理器52、网络接口53。需要指出的是,图中仅示出了具有组件51-53的计算机设备5,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器51至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器51可以是所述计算机设备5的内部存储单元,例如该计算机设备5的硬盘或内存。在另一些实施例中,所述存储器51也可以是所述计算机设备5的外部存储设备,例如该计算机设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器51还可以既包括所述计算机设备5的内部存储单元也包括其外部存储设备。本实施例中,所述存储器51通常用于存储安装于所述计算机设备5的操作系统和各类应用软件,例如消费环境隔离方法的计算机可读指令等。此外,所述存储器51还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器52在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器52通常用于控制所述计算机设备5的总体操作。本实施例中,所述处理器52用于运行所述存储器51中存储的计算机可读指令或者处理数据,例如运行所述消费环境隔离方法的计算机可读指令。
所述网络接口53可包括无线网络接口或有线网络接口,该网络接口53通常用于在所述计算机设备5与其他电子设备之间建立通信连接。
本申请提供的计算机设备,通过先对消息类型进行区分,再针对不同类型的消息,采用不同的方式确定对消息进行消费的消费实例,从而可以控制消息的消费环境,确保消息在合适的环境中进行消费,提高了消费环境隔离的准确性,避免了消息在不正确的环境中消费可能出现的结果无效或者报错的情况。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的消费环境隔离方法的步骤。
本申请提供的计算机可读存储介质,通过先对消息类型进行区分,再针对不同类型的消息,采用不同的方式确定对消息进行消费的消费实例,从而可以控制消息的消费环境,确保消息在合适的环境中进行消费,提高了消费环境隔离的准确性,避免了消息在不正确的环境中消费可能出现的结果无效或者报错的情况。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种消费环境隔离方法,其特征在于,包括下述步骤:
在RocketMQ的集群消费模式下,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息;
根据所述主题信息,确定所述已订阅消息对应的消息类型,所述消息类型包括外部消息和内部消息;
若所述消息类型为所述外部消息,则根据预设的配置项开关,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费;
若所述消息类型为所述内部消息,则获取所述已订阅消息的订阅信息,根据所述订阅信息和所述标签信息,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费。
2.根据权利要求1所述的消费环境隔离方法,其特征在于,所述获取所述已订阅消息的订阅信息,根据所述订阅信息和所述标签信息,在所述目标消费组中确定目标消费实例的步骤,具体包括:
根据所述订阅信息,生成所述已订阅消息对应的环境标识,并将所述环境标识填充至所述标签信息中;
将所述已订阅消息发送至所述目标消费组,根据所述环境标识在所述目标消费组的各个消费实例中确定所述目标消费实例。
3.根据权利要求2所述的消费环境隔离方法,其特征在于,所述将所述已订阅消息发送至所述目标消费组,根据所述环境标识在所述目标消费组的各个消费实例中确定所述目标消费实例的步骤,具体包括:
将所述已订阅消息发送至各个所述消费实例;
根据所述环境标识对各个所述消费实例对应的消费环境进行筛选,确定与所述环境标识匹配的目标消费环境;
将所述目标消费环境对应的消费实例作为所述目标消费实例。
4.根据权利要求1所述的消费环境隔离方法,其特征在于,所述根据预设的配置项开关,在所述目标消费组中确定目标消费实例的步骤,具体包括:
向所述目标消费组中的各个消费实例发送所述已订阅消息;
通过所述配置项开关,控制各个所述消费实例对所述已订阅消息进行接收或者拦截;
将接收所述已订阅消息的消费实例作为所述目标消费实例。
5.根据权利要求4所述的消费环境隔离方法,其特征在于,在所述向所述目标消费组中的各个消费实例发送所述已订阅消息的步骤之前,还包括:
当接收到携带有开关信息的配置指令时,根据所述开关信息对所述目标消费组进行配置,得到所述配置项开关;
根据所述配置项开关确定各个所述消费实例的配置项开启或者关闭;
以使得向各个所述消费实例发送消息时,配置项开启的消费实例对所述消息进行接收,配置项关闭的消费实例对所述消息进行拦截。
6.根据权利要求1至5任一项所述的消费环境隔离方法,其特征在于,在所述在RocketMQ的集群消费模式下,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息的步骤之前,还包括:
获取标识更新信息;
根据所述标识更新信息对所述目标消费组中的各个消费实例对应的消费者标识进行更新;
以使得不同消费实例对应不同消费者标识。
7.根据权利要求6所述的消费环境隔离方法,其特征在于,在所述在RocketMQ的集群消费模式下,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息的步骤之后,还包括:
当向所述目标消费组发送所述已订阅消息时;
根据所述不同消费者标识,确定各个所述消费实例具有所述已订阅消息对应的消费权限。
8.一种消费环境隔离装置,其特征在于,包括:
获取模块,用于在RocketMQ的集群消费模式下,获取目标消费组订阅的携带有主题信息和标签信息的已订阅消息;
确定模块,用于根据所述主题信息,确定所述已订阅消息对应的消息类型,所述消息类型包括外部消息和内部消息;
外部消息消费模块,用于若所述消息类型为所述外部消息,则根据预设的配置项开关,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费;
内部消息消费模块,用于若所述消息类型为所述内部消息,则获取所述已订阅消息的订阅信息,根据所述订阅信息和所述标签信息,在所述目标消费组中确定目标消费实例,以通过所述目标消费实例对所述已订阅消息进行消费。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的消费环境隔离方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的消费环境隔离方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311149505.XA CN117255076A (zh) | 2023-09-06 | 2023-09-06 | 消费环境隔离方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311149505.XA CN117255076A (zh) | 2023-09-06 | 2023-09-06 | 消费环境隔离方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117255076A true CN117255076A (zh) | 2023-12-19 |
Family
ID=89127275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311149505.XA Pending CN117255076A (zh) | 2023-09-06 | 2023-09-06 | 消费环境隔离方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117255076A (zh) |
-
2023
- 2023-09-06 CN CN202311149505.XA patent/CN117255076A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111414334A (zh) | 基于云技术的文件分片上传方法、装置、设备及存储介质 | |
CN111800462B (zh) | 微服务实例处理方法、装置、计算机设备及存储介质 | |
CN110321544B (zh) | 用于生成信息的方法和装置 | |
CN113254445B (zh) | 实时数据存储方法、装置、计算机设备及存储介质 | |
CN111813418B (zh) | 分布式链路跟踪方法、装置、计算机设备及存储介质 | |
CN112631924A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN115795211A (zh) | 一种页面展示方法、装置、系统、设备和存储介质 | |
CN111580883B (zh) | 应用程序启动方法、装置、计算机系统和介质 | |
WO2022156087A1 (zh) | 数据血缘关系建立方法、装置、计算机设备及存储介质 | |
US20190149601A1 (en) | Device list synchronizing method and apparatus, device, and computer storage medium | |
CN116974927A (zh) | 性能自动化测试方法、系统、计算机设备及存储介质 | |
CN116483425A (zh) | 微服务灰度发版方法、装置、设备及其存储介质 | |
CN117251228A (zh) | 功能管理方法、装置、计算机设备及存储介质 | |
CN116661936A (zh) | 页面数据的处理方法、装置、计算机设备及存储介质 | |
CN116911572A (zh) | 页面自动化装配方法、系统、计算机设备及存储介质 | |
CN110765610A (zh) | Pdm集成方法、装置、计算机设备及存储介质 | |
CN116112457A (zh) | 消息通知的方法、装置、计算机设备及存储介质 | |
CN117255076A (zh) | 消费环境隔离方法、装置、计算机设备及存储介质 | |
CN114626352A (zh) | 报表自动化生成方法、装置、计算机设备及存储介质 | |
CN111861323B (zh) | 物流信息管理方法及装置、存储介质、计算机系统 | |
CN114615325A (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
CN112130850A (zh) | 应用程序中功能的实现方法和装置 | |
CN111367571A (zh) | 一种设备的组装方法及装置 | |
CN116206032A (zh) | 任务校验方法、装置、计算机设备及其介质 | |
CN118012527A (zh) | 应用系统功能版本切换方法、装置及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |