WO2022037293A1 - Message-oriented middleware layout method and apparatus, server, and storage medium - Google Patents

Message-oriented middleware layout method and apparatus, server, and storage medium Download PDF

Info

Publication number
WO2022037293A1
WO2022037293A1 PCT/CN2021/104775 CN2021104775W WO2022037293A1 WO 2022037293 A1 WO2022037293 A1 WO 2022037293A1 CN 2021104775 W CN2021104775 W CN 2021104775W WO 2022037293 A1 WO2022037293 A1 WO 2022037293A1
Authority
WO
WIPO (PCT)
Prior art keywords
topic
topics
message middleware
sets
message
Prior art date
Application number
PCT/CN2021/104775
Other languages
French (fr)
Chinese (zh)
Inventor
杨振
Original Assignee
中兴通讯股份有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2022037293A1 publication Critical patent/WO2022037293A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Definitions

  • the embodiments of the present application relate to the field of information and communication technologies, and in particular, to a layout method, device, server, and storage medium for message middleware.
  • the first scenario is shown in Figure 1, where there is Service A (Service A ) and Service B (Service B), in actual business, A is both a producer of B and a consumer of B; B is both a producer of A and a consumer of B; A and B share the same Kafka service , which will cause the coupling of (A, B).
  • Service A Service A
  • Service B Service B
  • a and B share the same Kafka service , which will cause the coupling of (A, B).
  • the second scenario is shown in Figure 2.
  • There are Service A, Service B, and Service C B is a consumer of A and a producer of C.
  • An embodiment of the present application provides a layout method for message middleware, including: acquiring a coupling set of topics; wherein, topics in each coupling set have a coupling relationship; decoupling and grouping all topics according to the coupling set of topics, to obtain Multiple Topic sets; multiple Topic sets are deployed in each message middleware container cluster, where one Topic set is deployed in one message middleware container cluster.
  • An embodiment of the present application further provides a layout device for message middleware, including: an acquisition module, used for acquiring a coupling set of topics; wherein, topics in each coupling set have a coupling relationship; and a grouping module is used for coupling according to topics
  • the set decouples and groups all topics to obtain multiple topic sets;
  • the cluster deployment module is used to deploy multiple topic sets in each message middleware container cluster, where one topic set is deployed in one message middleware container in the cluster.
  • An embodiment of the present application further provides a server, including: at least one processor; and a memory connected in communication with the at least one processor; wherein the memory stores instructions that can be executed by the at least one processor, and the instructions are processed by the at least one processor
  • the processor executes, so that at least one processor can execute the layout method of the message middleware as described above.
  • Embodiments of the present application further provide a computer-readable storage medium, which stores a computer program, and when the computer program is executed by a processor, implements the above-mentioned layout method of the message middleware.
  • FIG. 1 is a schematic diagram of a path for message delivery by message middleware in a first scenario in the background technology of the present application;
  • FIG. 2 is a schematic diagram of a path for message delivery by message middleware in a second scenario in the background technology of the present application;
  • FIG. 3 is a schematic diagram of a path for message delivery by message middleware in a third scenario in the background technology of the present application;
  • FIG. 4 is a flowchart of a layout method for message middleware according to the first embodiment of the present application.
  • FIG. 5 is a flowchart of a layout method for message middleware according to a second embodiment of the present application.
  • FIG. 7 is a schematic structural diagram of a layout device for message middleware according to a third embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of a container multi-cluster distributed system according to the message middleware in the fourth embodiment of the present application.
  • FIG. 9 is a schematic structural diagram of a server according to a fifth embodiment of the present application.
  • Message middleware also called message queue middleware, is an intermediate component that uses an efficient and reliable message delivery mechanism for platform-independent data exchange. It includes a message server (Broker), a producer (Producer), a consumer (Consumer), and consumption topics. (Topic) et al. Among them, the Broker provides the core message service for the server, the Producer is responsible for producing messages, the Consumer is responsible for consuming and processing messages, and the Topic is used to collect messages in the publish-subscribe mode. In the scenario of a multi-service system, using message middleware to deliver messages can effectively solve the problem of business coupling. In the process of interacting with the message middleware, the message middleware service is used in multiple services or in the application scenario of the service architecture.
  • the form of a shared single node or multi-node cluster is used to realize the consumption and production of messages, and as the importance of service data increases, Increase, the number of message backups increases, the throughput for writing message middleware increases, and the corresponding IO pressure also increases.
  • partition replicas there are. According to the characteristics of Kafka itself, the number of partition replicas is the number of copies. Too many partition replicas can The throughput increases, and the write pressure also increases. In addition, cumbersome environment configuration and deployment operations also bring technical difficulties to developers.
  • the main purpose of the embodiments of the present application is to propose a layout method of message middleware, so that the service pressure of multi-service access message middleware is dispersed, the coupling between multiple services accessing message middleware is reduced, and the message middleware is improved. work stability.
  • the first embodiment of the present application relates to a layout method for message middleware, including: acquiring metadata of each consumption topic topic; generating a coupled set of topics according to the metadata of the topic; wherein, the topics in each coupled set have a coupling relationship ; Decouple and group all Topics according to the Topic coupling set to obtain multiple Topic sets; Deploy multiple Topic sets in each message middleware container cluster, where one Topic set is deployed in a message middleware container cluster middle.
  • the layout method of the message middleware is applied to a multi-cluster distributed system, the execution subject is the server serving as the message middleware container bearing node in the system, and the message middleware uses Kafka, a high-throughput distribution system. Take the publish-subscribe messaging system as an example to illustrate.
  • FIG. 4 The layout method of the message middleware in this embodiment is shown in FIG. 4 , and specifically includes:
  • step 401 metadata of each consumption topic Topic is acquired.
  • the metadata of the topic is used to describe the attribute information of the topic.
  • the attributes described by the metadata of the topic include: the capacity index of the topic, that is, the indicator of the importance of business data; the set of producers under the topic, that is, the The service collection of the producer of the topic; the service collection of the consumers under the topic.
  • the Topic's capacity indicator refers to the number of Topic message backups or copies.
  • the capacity of a topic is generally described by the number of replica copies.
  • the topic capacity indicator is also an indicator of the importance of business data. In order to ensure the disaster recovery capability of business data, the more important business data is, the larger the number of replica copies.
  • the form of pre-set importance can also be used, and the importance of each topic can be scored by the operation and maintenance personnel. At this time, the importance of the topic is also determined by the attribute information. data is described.
  • Step 402 generating a coupled set of topics according to the metadata of the topics.
  • the coupling set is a set that describes the coupling relationship between services in the service topic metadata.
  • each Topic coupling set all Topics have a coupling relationship.
  • the way to establish a coupled set is usually to describe the relationship between services using topics, and then to find the intersection of the producer set and the consumer set under all topic metadata, if the intersection does not If it is empty, it is considered that there is coupling between the services of the two topics, and the coupling set is added, that is, the topics with the same service in the producer service set or the consumer service set are generated as a coupled set. After traversing the metadata of all Topics once, a complete Topic coupling set is generated, and then the operation is continued from the remaining Topics until all Topics are put into the Topic coupling set.
  • service metadata can also be used to describe service attributes, and the attributes described by the service metadata include: basic service information, a Topic collection of the service as a producer, and a Topic collection of the service as a consumer. It can be found that both the service metadata and the topic metadata can describe the relationship between the service and the message middleware, and the difference lies in the different description directions. Therefore, in this embodiment, a coupled set of topics may also be generated according to service metadata, or a coupled set of topics may be generated according to service metadata and topic metadata. It is worth noting that in this embodiment, whether service metadata or topic metadata is used to generate the coupling set of topics, the coupling relationship between services is described with the topic as the center.
  • topic metadata and service metadata may be represented by service message tuples and topic message tuples, respectively.
  • Topic message tuple Ti (Rc i , PrSet i , CoSet i ), in which, TC (Topic Capacity) represents the capacity of the topic; ProSet (Producer Set) represents the set of producers under the topic, and the set contains all the producers of the topic. Topic services; ConSet (Consumer Set) represents the set of consumers under the Topic, and the set contains all the services that consume the Topic.
  • TC Topicic Capacity
  • ProSet Producer Set
  • Topic services ConSet
  • Consumer Set represents the set of consumers under the Topic, and the set contains all the services that consume the Topic.
  • the service message tuple S ⁇ Info, ProTopic, ConTopic ⁇ , where Info represents basic service information, ProTopic represents the Topic set as the producer, and ConTopic represents the Topic set as the consumer.
  • Step 403 decoupling and grouping all the Topics according to the Topic coupling set to obtain multiple Topic sets.
  • topics need to be decoupled and grouped.
  • the main way is to put all topics with coupling relationship in a set, as a topic group, and deploy the topic group in a cluster mode during actual deployment, so as to eliminate the coupling relationship between topic clusters and improve the The stability of the operation of the message middleware in the distributed system.
  • this grouping method the number of topic sets after grouping can be reduced as much as possible, and the efficiency of message middleware deployment can be improved.
  • Step 404 Deploy multiple topic sets in each message middleware container cluster respectively. Among them, a topic set is deployed in a cluster of message middleware containers.
  • obtaining multiple topic sets through decoupling grouping can be understood as obtaining the specific layout of deploying these topics through decoupling grouping.
  • each Topic set can deploy different numbers of message middleware, thus forming message middleware clusters of different scales.
  • the number of containers in the message middleware cluster can be deployed according to the number of topics or the actual expected load of the topic cluster.
  • the average capacity of the topic collection can be used as an indicator to measure the entire topic collection.
  • the number of containers required to deploy the message middleware container cluster of the topic set is determined according to the importance level of the topic set.
  • the average capacity is the ratio of the topic set capacity to the number of topics.
  • a cluster with a larger average capacity indicates that the message middleware messages on the cluster are more important, and more containers need to be allocated, that is, the larger the cluster size is.
  • the number of message backups in the cluster is the product of the number of middleware containers and the number of topic copies. A large number of data backups ensure the reliability of important topics.
  • Topic set A ⁇ T 1 , T 2 , T 3 , T 4 , T 5 ⁇
  • Topic set B ⁇ T 6 , T 7 , T 8 , T 9 ⁇ .
  • the average capacity of cluster SA The number of copies of T 6 , T 7 , T 8 , and T 9 are 4, 1, 8, and 3, respectively, then the average capacity of cluster SB
  • the ratio of the preset average capacity to the number of message middleware containers is 2:1, then finally three containers are allocated to the message middleware cluster SA and two containers are allocated to S B , so as to achieve uniform load distribution among the containers , to reduce the read and write pressure of containers that carry more important topics.
  • the layout method of the message middleware in this embodiment decouples and groups all the topics, deploys the message middleware in a cluster formed by the message middleware cluster, and distributes the topics with the coupling relationship.
  • Layout into a message middleware container cluster thereby reducing the coupling between the message middleware container clusters deploying each topic, dispersing the service pressure of multi-service access to message middleware, thereby improving the overall reliability of the message middleware cluster , to avoid the possibility of large-scale service paralysis caused by single-container cluster downtime.
  • each topic deployed in a message middleware cluster is a topic without a coupling relationship
  • the coupling between multiple services accessing the message middleware can be reduced, thereby improving the working stability of the message middleware, and at the same time. It can simplify the deployment process of message middleware.
  • topic sets with high average capacity that is, container clusters with high importance, more containers are allocated to further ensure the reliability of important services.
  • the second embodiment of the present application relates to a layout method for message middleware, which is roughly the same as the first embodiment of the present application.
  • the main difference is that in this embodiment, all topics are decoupled according to the coupling set of topics. Grouping to obtain multiple topic sets, including: using an improved greedy algorithm to decouple and group topics.
  • the selection condition of the improved greedy algorithm is that the topic currently traversed does not belong to the same coupling set as the topic that has been selected in this traversal.
  • the end conditions include: the total capacity of the topics selected in this traversal is greater than or equal to the preset capacity and the initial topic set is empty.
  • the layout method of the message middleware in this embodiment is shown in FIG. 5 , and specifically includes:
  • Step 501 Obtain metadata of each consumption topic topic.
  • Step 502 generating a coupled set of topics according to the metadata of the topics.
  • Steps 501 and 502 are substantially the same as steps 401 and 402 in the first embodiment of the present application, and the relevant implementation details have been specifically described in the first embodiment of the present application, and are not repeated in this embodiment.
  • Step 503 using an improved greedy algorithm, decoupling and grouping all Topics according to the Topic coupling set to obtain multiple Topic sets.
  • the greedy algorithm in this embodiment is characterized in that the traversal objects of the greedy algorithm are preprocessed, that is, an ordered set of topics is generated after sorting all topics according to their importance, that is, in this embodiment
  • the greedy strategy of the greedy algorithm will perform the traversal process in the order of the elements in the set.
  • the selection conditions in the greedy strategy are: the topic currently traversed does not belong to the same coupling set as the topic selected in this traversal; the end condition is that the total capacity of the topics selected in this traversal is greater than or equal to the preset The capacity as well as the initial set are empty.
  • the greedy algorithm is used to decouple and group all Topics according to their coupled sets, and the process of obtaining multiple Topic sets is shown in Figure 6, which specifically includes:
  • Step 5031 Sort all Topics according to their importance to obtain an initial set.
  • the importance of a topic is positively related to the number of copies of the topic backup, that is, the importance of a topic is represented by the number of copies of the topic, and the topics in the initial set are ordered according to their importance. arrangement. Subsequent greedy algorithms will access the topics in the initial set in the existing order.
  • Step 5032 create a topic collection.
  • the newly created Topic set is an empty set. After accessing a Topic that satisfies the selection condition according to the subsequent greedy algorithm, the Topic is selected and added to the Topic set.
  • Step 5033 traverse the initial set, and access the Topics in the initial set in turn.
  • Step 5034 determine whether the currently accessed Topic and the selected Topic in the Topic set belong to the same coupled set; if the currently accessed Topic and the selected Topic in the Topic set belong to the same coupled set, then continue to step 5033, traverse the initial Collection; if the currently accessed topic and the selected topic in the topic collection do not belong to the same coupling collection, step 5035 is executed.
  • Step 5035 Select the currently accessed topic to add to the topic set.
  • the Topic that has a coupling relationship with the currently accessed Topic will be searched from all the selected Topics in the newly created Topic set according to the coupling set to which the Topic belongs. If there is a Topic with a coupling relationship, the currently accessed Topic will not be added to the Topic collection, and continue to access the next Topic in the initial collection in order. If the topic accessed this time does not have a coupling relationship with any topic in the newly created topic collection, the currently accessed topic is added to the newly created topic collection.
  • Step 5036 determine whether the traversal ends; if the traversal ends, execute step 5037; if the traversal does not end, continue to execute step 5033 to traverse the initial set.
  • the topic collection is saved, that is, a topic collection has been obtained through this traversal.
  • the capacity of a single Topic set can be controlled, so as to reduce the number of Topic sets as much as possible, control the number of containers required to deploy a message middleware container cluster of a single Topic, so as to avoid the important Topic in a cluster. More, reducing the probability of large-scale service failure of important topics.
  • Step 5037 update the initial set, and determine whether the updated initial set is empty; if the updated initial set is empty, then execute step 5038; if the updated initial set is not empty, then execute step 5032 again to create a new empty set.
  • Topic collection if the updated initial set is empty, then execute step 5038; if the updated initial set is not empty, then execute step 5032 again to create a new empty set.
  • Step 5038 output all topic sets.
  • the method of updating the initial set is: taking the difference set of the Topic included in the initial set and all the Topics of the acquired Topic set as the updated initial set.
  • the updated initial set is empty, it means that all topics have been decoupled and grouped.
  • the greedy algorithm is terminated and no longer executed, and all existing topic sets are output as the deployment message middleware container cluster. layout basis.
  • the Topics in the initial set are sorted according to their importance, the importance of the Topics in the Topics set obtained first will be higher than that of the Topic sets obtained later.
  • the execution efficiency is high, and the Topics with higher importance will be preferentially assigned to the same Topic set, and the number of the finally generated Topic sets will be reduced.
  • allocating more containers can simultaneously improve the reliability of these highly important topics, thus simplifying the deployment and deployment of message middleware clusters by operation and maintenance personnel. maintenance strategy.
  • Step 504 Deploy multiple topic sets in each message middleware container cluster respectively.
  • Step 504 is substantially the same as step 404 in the first embodiment of the present application, and the relevant implementation details have been specifically described in the first embodiment of the present application, and will not be repeated in this embodiment.
  • an improved greedy algorithm can be used to sort the topics in the initial set traversed by the greedy algorithm, It makes the topics with high importance priority to be grouped into the same topic collection.
  • more containers are allocated, which disperses the pressure of important topics to access service messages, and further Improves the reliability of important message middleware.
  • it can simplify the strategy for deploying and maintaining message middleware clusters for operation and maintenance personnel.
  • the third embodiment of the present application relates to a layout device for message middleware, as shown in FIG. 7 , including:
  • the obtaining module 701 is configured to obtain a coupling set of Topics; wherein, the Topics in each coupling set have a coupling relationship.
  • the generating module 701 may also be configured to generate the Topic coupling set according to the service message tuple, or simultaneously according to the service message tuple and the Topic message tuple.
  • the generating module 701 can also be used to generate the Topic with the same service in the producer service set or the consumer service set as a coupled set.
  • the grouping module 702 is used for decoupling and grouping all the Topics according to the coupling set of Topics to obtain multiple Topic sets.
  • the grouping module 702 can also be used to decouple the Topic by adopting an improved greedy algorithm.
  • the specific process of decoupling grouping includes: sorting all Topics according to their importance to obtain the initial set; traversing the initial set using a greedy strategy, and placing the selected Topics in the same Topic set; among them, the selection conditions of the greedy strategy is: the currently traversed Topic does not belong to the same coupled set as the Topic selected in this traversal; the difference between the Topic contained in the initial set and all the Topics in the acquired Topic set is used as the updated initial set; yes The updated initial set repeats the traversal of the greedy strategy to obtain a new topic set and the update of the initial set, until the updated initial set is empty.
  • the cluster deployment module 703 is configured to deploy multiple topic sets in each message middleware container cluster, wherein one topic set is deployed in one message middleware container cluster.
  • the cluster deployment module 703 may also be configured to determine the number N of message middleware containers required by the deployed message middleware container cluster according to the number of topics in the topic set and the number of copies of each topic; deploy the topic set in N message middleware containers.
  • the cluster deployment module 704 can also be configured to calculate the average capacity of the Topic set according to the number of Topics and the number of copies of each Topic backup; N is determined according to the average capacity of the Topic set, where N and the average of the Topic set capacity is positively correlated.
  • this embodiment is a virtual device embodiment corresponding to the first embodiment or the second embodiment, and this embodiment can be implemented in cooperation with the first embodiment or the second embodiment.
  • the related technical details mentioned in the first embodiment or the second embodiment are still valid in this embodiment, and are not repeated here in order to reduce repetition.
  • the related technical details mentioned in this embodiment can also be applied to the first embodiment or the second embodiment.
  • modules involved in this implementation are logical modules.
  • a logical unit may be a physical unit, a part of a physical unit, or multiple physical units. combination implementation.
  • this embodiment does not introduce units that are not closely related to solving the technical problem raised by the present application, but this does not mean that there are no other units in this embodiment.
  • the fourth embodiment of the present application relates to a container multi-cluster distributed system of message middleware, and this embodiment may include a layout device for message middleware described in the third embodiment of the present application.
  • FIG. 8 The container multi-cluster distributed system of the message middleware in this embodiment is shown in FIG. 8 , including:
  • the basic environment module 801 is used to automatically build and maintain the automatically compiled running environment, construction tool, installation environment, and image running environment through one-click scripting.
  • the construction of the basic environment includes not only the construction of the compilation environment, but also the construction and installation of the container environment.
  • This module mainly builds the compilation environment according to the requirements of the Kafka source code, including the detection and installation of the Java environment and the adaptation and installation of the Scala environment.
  • the Kafka source code will have a recommended environment version for installation, it is necessary to adapt the environment installation package according to the Gradle configuration file to build a compilation environment; in addition, a container environment needs to be built, which is mainly docker and docker- compose environment.
  • the source code compilation module 802 is used for compiling and packaging the customized open source message middleware source code into a compressed package form through a series of standardized operations.
  • the source code compilation module imports the customized Kafka source code developed and tested by the user, uses a one-click compilation script, starts a series of standardized compilation actions, and uses the Gradle compilation tool to package Kafka into the form of an installation package.
  • the personalized customized message middleware source code refers to the compilable source code that the user performs secondary development according to his own business scenario requirements or the open source message middleware source code with recompilation requirements and passes all tests.
  • a series of table conversion operations refers to encapsulating the construction of the basic environment and compilation environment construction tools through an automated script.
  • the automated script includes the installation of the basic environment according to the source code requirements, and the update of the source code of the message middleware and the pull of the compilation dependencies. Take and install the package.
  • the image generation module 803 is configured to generate a message middleware image supporting the system, a basic image required by the system, and an upper-layer application image supporting the message middleware.
  • the installation package used by the Kafka image packaged by this module comes from the installation package generated by the source code compilation module, and the installation packages of the other two images Zookeeper and Kafka-Eagle are required. Pull from the official website; build the image mainly through Shell script and Dockerfile file, and update the image to the image warehouse for production environment use.
  • the service management module 804 is configured to rearrange and allocate services to different message middleware clusters from two dimensions of the importance of business data of multiple services and the mutual coupling relationship of services.
  • the service management module mainly realizes the rearrangement of the Kafka cluster assigned to each microservice.
  • the module first abstracts the microservice information data from the topic microservice metadata, and can extract the microservices by producing the topic collection and consuming the topic collection.
  • the coupling relationship between the microservices and the topic is rearranged in the cluster by adopting an improved greedy algorithm centered on the topic.
  • the cluster deployment module 805 is configured to deploy the laid out Topics on the message middleware multi-cluster through the container cluster metadata to implement the container cluster group.
  • the cluster deployment module is also used to construct a microservice layout cluster from the image generated by the image generation module through the cluster management tool (docker-compose, docker-manage) to form a container cluster group, and the cluster group is composed of a plurality of container cluster elements.
  • the cluster management tool docker-compose, docker-manage
  • each container cluster corresponds to a topic set.
  • the security authentication module 806 is configured to realize the security authentication access of the client through dynamic SSL certificate update.
  • the security authentication module in this embodiment is mainly used to manage the dynamic update of the SSL authentication of the user client, the ACL authorization control of Zookeeper, and the security authentication required by Kafka itself.
  • the unified interface module 807 is configured to provide interface access for external clients through the packaged interface configuration.
  • the unified interface module in this embodiment provides a unified interface between the client and the server for the cloud management platform.
  • the server interface is mainly used in the actual deployment environment.
  • Topic is created in each cluster environment, and the interface includes the interface created by the topic.
  • a series of parameters can be created by user customization; the client interface includes the configuration parameter interface for the producer and consumer clients to connect to the Kafka server.
  • the operation monitoring module 808 is used for implementing message middleware cluster monitoring by using an existing open source message middleware monitoring tool.
  • the operation monitoring module mainly uses the Kafka monitoring container built by the image-packaged Kafka-Eagle image to monitor the Kafka topic status, the throughput of production and consumption messages, the status of the container cluster, and event alarms.
  • modules involved in this implementation are logical modules.
  • a logical unit may be a physical unit, a part of a physical unit, or multiple physical units. combination implementation.
  • this embodiment does not introduce units that are not closely related to solving the technical problem raised by the present application, but this does not mean that there are no other units in this embodiment.
  • the fifth embodiment of the present application relates to a server, as shown in FIG. 9 , comprising: at least one processor 901; and a memory 902 connected in communication with the at least one processor 901; Instructions executed by the processor 901, the instructions are executed by at least one processor 901, so that the at least one processor 901 can execute the layout method of the message middleware in the first or second embodiment.
  • the memory 902 and the processor 901 are connected by a bus, and the bus may include any number of interconnected buses and bridges, and the bus connects one or more processors 901 and various circuits of the memory 902 together.
  • the bus may also connect together various other circuits, such as peripherals, voltage regulators, and power management circuits, which are well known in the art and therefore will not be described further herein.
  • the bus interface provides the interface between the bus and the transceiver.
  • a transceiver may be a single element or multiple elements, such as multiple receivers and transmitters, providing a means for communicating with various other devices over a transmission medium.
  • the data processed by the processor 901 is transmitted on the wireless medium through the antenna, and further, the antenna also receives the data and transmits the data to the processor 901 .
  • Processor 901 is responsible for managing the bus and general processing, and may also provide various functions including timing, peripheral interface, voltage regulation, power management, and other control functions.
  • the memory 902 may be used to store data used by the processor 901 when performing operations.
  • the sixth embodiment of the present application relates to a computer-readable storage medium storing a computer program.
  • the above method embodiments are implemented when the computer program is executed by the processor.
  • the aforementioned storage medium includes: U disk, mobile hard disk, Read-Only Memory (ROM, Read-Only Memory), Random Access Memory (RAM, Random Access Memory), magnetic disk or optical disk and other media that can store program codes .

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The embodiments of the present application relate to the technical fields of messages and communication, and disclose a message-oriented middleware layout method and apparatus, a server, and a storage medium. The method comprises: acquiring topic coupling sets, the topics in each coupling set having a coupling relationship; on the basis of the topic coupling sets, performing decoupling and grouping of all of the topics to obtain a plurality of topic sets; and respectively deploying the plurality of topic sets in message-oriented middleware container clusters, one topic set being deployed in one message-oriented middleware container cluster.

Description

消息中间件的布局方法、装置、服务器及存储介质Layout method, device, server and storage medium of message middleware
交叉引用cross reference
本申请基于申请号为“202010833757.4”、申请日为2020年08月18日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此以引入方式并入本申请。This application is based on the Chinese patent application with the application number "202010833757.4" and the application date is August 18, 2020, and claims the priority of the Chinese patent application. The entire content of the Chinese patent application is hereby incorporated by reference. Apply.
技术领域technical field
本申请实施例涉及信息与通信技术领域,特别涉及一种消息中间件的布局方法、装置、服务器及存储介质。The embodiments of the present application relate to the field of information and communication technologies, and in particular, to a layout method, device, server, and storage medium for message middleware.
背景技术Background technique
以消息中间件Kafka在多个服务之间传递消息的业务场景为例,在使用消息中间件的过程中往往存在以下问题:(1)第一场景如图1所示,存在Service A(服务A)和Service B(服务B),在实际业务中,A既是B的生产者,又是B的消费者;B既是A的生产者,又是B的消费者;A和B共用相同的Kafka服务,会造成(A,B)的耦合性。(2)第二场景如图2所示,存在Service A、Service B以及Service C,B是A的消费者,同时是C的生产者,两组服务访问同一个Kafka服务时,在版本升级或一些Kafka故障问题出现时,会出现两组服务都不能使用Kafka服务的情况。也就是(A,B)和(B,C)之间的耦合性。(3)第三场景如图3所示,存在Service A、Service B、Service C以及Service D,由于(A,B)和(C,D)业务数据重要性不同,因此Topic1和Topic2的副本数也不同;每个Topic的分区副本(Replication)数目与业务数据重要性正相关,业务数据越重要,分区副本越多,根据Kafka本身的特点,分区副本的数目即拷贝数,分区副本过多可以使吞吐量增大,同时写入压力也会增大。除此之外,繁琐的环境配置和部署操作也给开发人员带来技术困扰。Taking the business scenario of message middleware Kafka passing messages between multiple services as an example, there are often the following problems in the process of using message middleware: (1) The first scenario is shown in Figure 1, where there is Service A (Service A ) and Service B (Service B), in actual business, A is both a producer of B and a consumer of B; B is both a producer of A and a consumer of B; A and B share the same Kafka service , which will cause the coupling of (A, B). (2) The second scenario is shown in Figure 2. There are Service A, Service B, and Service C. B is a consumer of A and a producer of C. When two sets of services access the same Kafka service, they will be upgraded or When some Kafka failure problems occur, there will be situations where both sets of services cannot use the Kafka service. That is, the coupling between (A, B) and (B, C). (3) The third scenario is shown in Figure 3. There are Service A, Service B, Service C and Service D. Due to the different importance of the business data of (A, B) and (C, D), the number of copies of Topic1 and Topic2 It is also different; the number of partition replicas (Replication) of each topic is positively related to the importance of business data. The more important the business data is, the more partition replicas there are. According to the characteristics of Kafka itself, the number of partition replicas is the number of copies. Too many partition replicas can The throughput increases, and the write pressure also increases. In addition, cumbersome environment configuration and deployment operations also bring technical difficulties to developers.
发明内容SUMMARY OF THE INVENTION
本申请实施例提供了一种消息中间件的布局方法,包括:获取Topic的耦合集合;其中,各耦合集合中的Topic具有耦合关系;根据Topic的耦合集合对所有的Topic进行解耦分组,得到多个Topic集合;将多个Topic集合分别部署在各消息中间件容器集群中,其中,一个Topic集合部署在一个消息中间件容器集群中。An embodiment of the present application provides a layout method for message middleware, including: acquiring a coupling set of topics; wherein, topics in each coupling set have a coupling relationship; decoupling and grouping all topics according to the coupling set of topics, to obtain Multiple Topic sets; multiple Topic sets are deployed in each message middleware container cluster, where one Topic set is deployed in one message middleware container cluster.
本申请实施例还提供了一种消息中间件的布局装置,包括:获取模块,用于获取Topic的耦合集合;其中,各耦合集合中的Topic具有耦合关系;分组模块,用于根据Topic的耦合集合对所有的Topic进行解耦分组,得到多个Topic集合;集群部署模块,用于将多个Topic集合分别部署在各消息中间件容器集群中,其中,一个Topic集合部署在一个消息中间件容器集群中。An embodiment of the present application further provides a layout device for message middleware, including: an acquisition module, used for acquiring a coupling set of topics; wherein, topics in each coupling set have a coupling relationship; and a grouping module is used for coupling according to topics The set decouples and groups all topics to obtain multiple topic sets; the cluster deployment module is used to deploy multiple topic sets in each message middleware container cluster, where one topic set is deployed in one message middleware container in the cluster.
本申请实施例还提供了一种服务器,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上述的消息中间件的布局方法。An embodiment of the present application further provides a server, including: at least one processor; and a memory connected in communication with the at least one processor; wherein the memory stores instructions that can be executed by the at least one processor, and the instructions are processed by the at least one processor The processor executes, so that at least one processor can execute the layout method of the message middleware as described above.
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处 理器执行时实现如上述的消息中间件的布局方法。Embodiments of the present application further provide a computer-readable storage medium, which stores a computer program, and when the computer program is executed by a processor, implements the above-mentioned layout method of the message middleware.
附图说明Description of drawings
图1是根据本申请背景技术中第一场景下消息中间件传递消息的路径示意图;FIG. 1 is a schematic diagram of a path for message delivery by message middleware in a first scenario in the background technology of the present application;
图2是根据本申请背景技术中第二场景下消息中间件传递消息的路径示意图;FIG. 2 is a schematic diagram of a path for message delivery by message middleware in a second scenario in the background technology of the present application;
图3是根据本申请背景技术中第三场景下消息中间件传递消息的路径示意图;FIG. 3 is a schematic diagram of a path for message delivery by message middleware in a third scenario in the background technology of the present application;
图4是根据本申请第一实施例中消息中间件的布局方法的流程图;4 is a flowchart of a layout method for message middleware according to the first embodiment of the present application;
图5是根据本申请第二实施例中消息中间件的布局方法的流程图;5 is a flowchart of a layout method for message middleware according to a second embodiment of the present application;
图6是根据本申请第二实施例中消息中间件的布局方法中采用贪心算法对所有Topic进行解耦分组的流程图;6 is a flowchart of decoupling and grouping all Topics by adopting a greedy algorithm in the layout method of message middleware according to the second embodiment of the present application;
图7是根据本申请第三实施例中消息中间件的布局装置的结构示意图;7 is a schematic structural diagram of a layout device for message middleware according to a third embodiment of the present application;
图8是根据本申请第四实施例中消息中间件的容器多集群分布式系统的结构示意图;8 is a schematic structural diagram of a container multi-cluster distributed system according to the message middleware in the fourth embodiment of the present application;
图9是根据本申请第五实施例中服务器的结构示意图。FIG. 9 is a schematic structural diagram of a server according to a fifth embodiment of the present application.
具体实施方式detailed description
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。In order to make the objectives, technical solutions and advantages of the embodiments of the present application more clear, each embodiment of the present application will be described in detail below with reference to the accompanying drawings. However, those of ordinary skill in the art can understand that, in each embodiment of the present application, many technical details are provided for the reader to better understand the present application. However, even without these technical details and various changes and modifications based on the following embodiments, the technical solutions claimed in the present application can be realized. The following divisions of the various embodiments are for the convenience of description, and should not constitute any limitation on the specific implementation of the present application, and the various embodiments may be combined with each other and referred to each other on the premise of not contradicting each other.
消息中间件也叫消息队列中间件,是利用高效可靠的消息传递机制进行平台无关的数据交流的中间组件,其包括消息服务器(Broker),生产者(Producer),消费者(Consumer),消费主题(Topic)等。其中,Broker为server提供消息核心服务,Producer负责生产消息,Consumer负责消费处理消息,Topic用来汇集发布订阅模式下的消息。在多业务系统的场景下,采用消息中间件来负责传递消息可以有效解决业务耦合问题。与消息中间件交互的过程中,消息中间件服务在多个服务或采用服务架构应用场景下使用一般采用共用单节点或多节点集群形式来实现消费和生产消息,并且随着服务数据重要性升级增加,消息的备份数增大,对写入消息中间件的吞吐量增大,对应的IO压力也随之增大。Message middleware, also called message queue middleware, is an intermediate component that uses an efficient and reliable message delivery mechanism for platform-independent data exchange. It includes a message server (Broker), a producer (Producer), a consumer (Consumer), and consumption topics. (Topic) et al. Among them, the Broker provides the core message service for the server, the Producer is responsible for producing messages, the Consumer is responsible for consuming and processing messages, and the Topic is used to collect messages in the publish-subscribe mode. In the scenario of a multi-service system, using message middleware to deliver messages can effectively solve the problem of business coupling. In the process of interacting with the message middleware, the message middleware service is used in multiple services or in the application scenario of the service architecture. Generally, the form of a shared single node or multi-node cluster is used to realize the consumption and production of messages, and as the importance of service data increases, Increase, the number of message backups increases, the throughput for writing message middleware increases, and the corresponding IO pressure also increases.
然而,在使用消息中间件的过程中可能存在服务之间生产和消费的互动,但是随着业务需求的增加,服务数量也随之增加,服务之间存在着不可避免的耦合性,导致消息中间件的工作稳定性无法满足用户需求。以消息中间件Kafka在多个服务之间传递消息的业务场景为例,在使用消息中间件的过程中往往存在以下问题:(1)第一场景如图1所示,存在Service A(服务A)和Service B(服务B),在实际业务中,A既是B的生产者,又是B的消费者;B既是A的生产者,又是B的消费者;A和B共用相同的Kafka服务,会造成(A,B)的耦合性。(2)第二场景如图2所示,存在Service A、Service B以及Service C,B是A的消费者,同时是C的生产者,两组服务访问同一个Kafka服务时,在版本升级或一些Kafka故障问题出现时,会出现两组服务都不能使用Kafka服务的情况。也就是(A,B)和(B,C)之间的耦合性。(3)第三场景如图3所示,存在Service A、Service B、Service C以及Service  D,由于(A,B)和(C,D)业务数据重要性不同,因此Topic1和Topic2的副本数也不同;每个Topic的分区副本(Replication)数目与业务数据重要性正相关,业务数据越重要,分区副本越多,根据Kafka本身的特点,分区副本的数目即拷贝数,分区副本过多可以使吞吐量增大,同时写入压力也会增大。除此之外,繁琐的环境配置和部署操作也给开发人员带来技术困扰。However, in the process of using message middleware, there may be the interaction of production and consumption between services, but with the increase of business requirements, the number of services also increases, and there is an inevitable coupling between services, which leads to message middleware. The working stability of the software cannot meet the needs of users. Taking the business scenario of message middleware Kafka passing messages between multiple services as an example, there are often the following problems in the process of using message middleware: (1) The first scenario is shown in Figure 1, where there is Service A (Service A ) and Service B (Service B), in actual business, A is both a producer of B and a consumer of B; B is both a producer of A and a consumer of B; A and B share the same Kafka service , which will cause the coupling of (A, B). (2) The second scenario is shown in Figure 2. There are Service A, Service B, and Service C. B is a consumer of A and a producer of C. When two sets of services access the same Kafka service, they will be upgraded or When some Kafka failure problems occur, there will be situations where both sets of services cannot use the Kafka service. That is, the coupling between (A, B) and (B, C). (3) The third scenario is shown in Figure 3. There are Service A, Service B, Service C and Service D. Due to the different importance of the business data of (A, B) and (C, D), the number of copies of Topic1 and Topic2 It is also different; the number of partition replicas (Replication) of each topic is positively related to the importance of business data. The more important the business data is, the more partition replicas there are. According to the characteristics of Kafka itself, the number of partition replicas is the number of copies. Too many partition replicas can The throughput increases, and the write pressure also increases. In addition, cumbersome environment configuration and deployment operations also bring technical difficulties to developers.
本申请实施例的主要目的在于提出一种消息中间件的布局方法,使得多服务访问消息中间件的服务压力得到分散,减小多个服务之间访问消息中间件的耦合,进而提高消息中间件的工作稳定性。The main purpose of the embodiments of the present application is to propose a layout method of message middleware, so that the service pressure of multi-service access message middleware is dispersed, the coupling between multiple services accessing message middleware is reduced, and the message middleware is improved. work stability.
本申请的第一实施例涉及一种消息中间件的布局方法,包括:获取各个消费主题Topic的元数据;根据Topic的元数据生成Topic的耦合集合;其中,各耦合集合中的Topic具有耦合关系;根据Topic的耦合集合对所有的Topic进行解耦分组,得到多个Topic集合;将多个Topic集合分别部署在各消息中间件容器集群中,其中,一个Topic集合部署在一个消息中间件容器集群中。在本实施例中,消息中间件的布局方法应用于多集群的分布式系统,执行主体为该系统中作为消息中间件容器承载节点的服务器,消息中间件以Kafka,一种高吞吐量的分布式发布订阅消息系统为例进行说明。The first embodiment of the present application relates to a layout method for message middleware, including: acquiring metadata of each consumption topic topic; generating a coupled set of topics according to the metadata of the topic; wherein, the topics in each coupled set have a coupling relationship ; Decouple and group all Topics according to the Topic coupling set to obtain multiple Topic sets; Deploy multiple Topic sets in each message middleware container cluster, where one Topic set is deployed in a message middleware container cluster middle. In this embodiment, the layout method of the message middleware is applied to a multi-cluster distributed system, the execution subject is the server serving as the message middleware container bearing node in the system, and the message middleware uses Kafka, a high-throughput distribution system. Take the publish-subscribe messaging system as an example to illustrate.
下面结合附图对本实施例作进一步阐述,本实施例中的消息中间件的布局方法如图4所示,具体包括:The present embodiment will be further elaborated below with reference to the accompanying drawings. The layout method of the message middleware in this embodiment is shown in FIG. 4 , and specifically includes:
步骤401,获取各个消费主题Topic的元数据。In step 401, metadata of each consumption topic Topic is acquired.
具体地说,Topic的元数据是用来描述Topic属性信息,Topic的元数据所描述的属性包括:Topic的容量指标,即业务数据重要性的指标;该Topic下的生产者集合,即作为该Topic的生产者的服务集合;该Topic下的消费者的服务集合。其中,Topic的容量指标是指Topic消息备份的数量或拷贝数量。Specifically, the metadata of the topic is used to describe the attribute information of the topic. The attributes described by the metadata of the topic include: the capacity index of the topic, that is, the indicator of the importance of business data; the set of producers under the topic, that is, the The service collection of the producer of the topic; the service collection of the consumers under the topic. The Topic's capacity indicator refers to the number of Topic message backups or copies.
在Kafka中,Topic的容量一般用副本拷贝数来描述,Topic容量指标,也是描述业务数据重要性的指标,由于为了保证业务数据的容灾能力,一般业务数据越重要副本拷贝数就越大。另外,在其他类型消息中间件中,也可以采用预先设定重要程度的形式,由运维人员为各个Topic的重要程度进行打分,此时Topic的重要程度同样以属性信息的方式由Topic的元数据进行描述。In Kafka, the capacity of a topic is generally described by the number of replica copies. The topic capacity indicator is also an indicator of the importance of business data. In order to ensure the disaster recovery capability of business data, the more important business data is, the larger the number of replica copies. In addition, in other types of message middleware, the form of pre-set importance can also be used, and the importance of each topic can be scored by the operation and maintenance personnel. At this time, the importance of the topic is also determined by the attribute information. data is described.
步骤402,根据Topic的元数据生成Topic的耦合集合。 Step 402, generating a coupled set of topics according to the metadata of the topics.
具体地说,耦合集合是描述服务Topic元数据中服务之间产生的耦合关系的集合,为了得到所有Topic之间具体的耦合关系,需要先建立多个Topic的耦合集合。其中,每一个Topic耦合集合中,所有的Topic之间均具有耦合关系。Specifically, the coupling set is a set that describes the coupling relationship between services in the service topic metadata. In order to obtain the specific coupling relationship between all topics, it is necessary to establish a coupling set of multiple topics first. Among them, in each Topic coupling set, all Topics have a coupling relationship.
进一步地说,在一个例子中,建立耦合集合的方式通常是将服务之间的关系利用Topic来描述,进而对所有Topic元数据下的生产者集合和消费者集合两两求交集,如果交集不为空,则认为两个Topic的服务之间存在耦合,并加入耦合集合,即,将生产者服务集合或消费者服务集合中具有相同服务的Topic生成为一耦合集合。当遍历一次所有Topic的元数据后,则生成一个完整的Topic耦合集合,然后从剩下的Topic中继续执行该操作,直至所有的Topic均被放入到Topic耦合集合中。Further, in an example, the way to establish a coupled set is usually to describe the relationship between services using topics, and then to find the intersection of the producer set and the consumer set under all topic metadata, if the intersection does not If it is empty, it is considered that there is coupling between the services of the two topics, and the coupling set is added, that is, the topics with the same service in the producer service set or the consumer service set are generated as a coupled set. After traversing the metadata of all Topics once, a complete Topic coupling set is generated, and then the operation is continued from the remaining Topics until all Topics are put into the Topic coupling set.
在一个例子中,也可以采用服务元数据来描述服务属性,服务元数据描述的属性包括:服务基本信息、该服务作为生产者的Topic集合、该服务作为消费者的Topic集合。可以发现, 服务元数据以及Topic元数据均能够描述服务与消息中间件之间的关系,区别在于描述的方向不同。因此,本实施例中也可以根据服务元数据来生成Topic的耦合集合,或,根据服务元数据以及Topic元数据来生成Topic的耦合集合。值得注意的是,本实施例中无论是采用服务元数据还是Topic元数据来生成Topic的耦合集合,都是以Topic为中心来描述服务之间的耦合关系。In an example, service metadata can also be used to describe service attributes, and the attributes described by the service metadata include: basic service information, a Topic collection of the service as a producer, and a Topic collection of the service as a consumer. It can be found that both the service metadata and the topic metadata can describe the relationship between the service and the message middleware, and the difference lies in the different description directions. Therefore, in this embodiment, a coupled set of topics may also be generated according to service metadata, or a coupled set of topics may be generated according to service metadata and topic metadata. It is worth noting that in this embodiment, whether service metadata or topic metadata is used to generate the coupling set of topics, the coupling relationship between services is described with the topic as the center.
在一个例子中,Topic元数据和服务元数据可以分别通过服务消息元组和Topic消息元组来进行表示。In one example, topic metadata and service metadata may be represented by service message tuples and topic message tuples, respectively.
其中,Topic消息元组Ti=(Rc i,PrSet i,CoSet i),其中,TC(Topic Capacity)代表Topic的容量;ProSet(Producer Set)代表该Topic下生产者集合,该集合包含所有生产该Topic的服务;ConSet(Consumer Set)代表该Topic下消费者的集合,该集合包含所有消费该Topic的服务。 Among them, Topic message tuple Ti=(Rc i , PrSet i , CoSet i ), in which, TC (Topic Capacity) represents the capacity of the topic; ProSet (Producer Set) represents the set of producers under the topic, and the set contains all the producers of the topic. Topic services; ConSet (Consumer Set) represents the set of consumers under the Topic, and the set contains all the services that consume the Topic.
服务消息元组S={Info,ProTopic,ConTopic},其中Info表示服务基本信息,ProTopic表示作为生产者的Topic集合,ConTopic表示作为消费者的Topic集合。The service message tuple S={Info, ProTopic, ConTopic}, where Info represents basic service information, ProTopic represents the Topic set as the producer, and ConTopic represents the Topic set as the consumer.
在一个例子中,通过服务消息元组和Topic消息元组来生成Topic耦合集合的过程包括:根据Topic消息元组和服务消息元组建立服务和Topic的关联关系Relation=(T i,PS j,CS k),生成关联关系集合{(T i,PS j,CS k)},根据耦合关系定义,PS j和CS j属于同一个服务,因此可以对该关联关系进行求交集处理,生成耦合集合{(T i,T j)}。 In an example, the process of generating the Topic coupling set by using the service message tuple and the Topic message tuple includes: establishing the association relationship between the service and the Topic according to the Topic message tuple and the service message tuple Relation=(T i , PS j , CS k ), generate an association relationship set {(T i , PS j , CS k )}, according to the definition of the coupling relationship, PS j and CS j belong to the same service, so the association relationship can be intersected to generate a coupling set {(T i , T j )}.
步骤403,根据Topic的耦合集合对所有的Topic进行解耦分组,得到多个Topic集合。 Step 403 , decoupling and grouping all the Topics according to the Topic coupling set to obtain multiple Topic sets.
具体地说,为了降低部署后服务之间的耦合性,需要对Topic进行解耦分组。主要的方式是将所有具有耦合关系的Topic放在一个集合中,作为一个Topic组,在实际部署时将该Topic组以集群的方式进行部署,从而能够消除各个Topic集群之间的耦合关系,提高该分布式系统中消息中间件运行的稳定性。同时,通过这样的分组方式,能够尽量减少分组后Topic集合的数量,提高消息中间件部署的效率。Specifically, in order to reduce the coupling between services after deployment, topics need to be decoupled and grouped. The main way is to put all topics with coupling relationship in a set, as a topic group, and deploy the topic group in a cluster mode during actual deployment, so as to eliminate the coupling relationship between topic clusters and improve the The stability of the operation of the message middleware in the distributed system. At the same time, through this grouping method, the number of topic sets after grouping can be reduced as much as possible, and the efficiency of message middleware deployment can be improved.
步骤404,将多个Topic集合分别部署在各消息中间件容器集群中。其中,一个Topic集合部署在一个消息中间件容器集群中。Step 404: Deploy multiple topic sets in each message middleware container cluster respectively. Among them, a topic set is deployed in a cluster of message middleware containers.
具体地说,通过解耦分组得到多个Topic集合,可以理解为通过解耦分组得到了部署这些Topic的具体布局。另外,每一个Topic集合可以部署不同数量的消息中间件,从而形成不同规模的消息中间件集群。消息中间件集群中的容器数量可以根据Topic的数量,或者Topic集群实际期望的负载来进行部署。Specifically, obtaining multiple topic sets through decoupling grouping can be understood as obtaining the specific layout of deploying these topics through decoupling grouping. In addition, each Topic set can deploy different numbers of message middleware, thus forming message middleware clusters of different scales. The number of containers in the message middleware cluster can be deployed according to the number of topics or the actual expected load of the topic cluster.
在一个例子中,根据Topic容量越大,重要程度越高的特性,为了保证业务数据的容灾能力以及保证消息中间件服务的可靠性,可以以Topic集合的平均容量作为指标来衡量整个Topic集合重要程度的依据,从而根据Topic集合的重要程度来确定部署该Topic集合的消息中间件容器集群所需要的容器数量。平均容量即Topic集合容量与Topic数量之比,平均容量较大的集群代表该集群上消息中间件消息较为重要,需要分配更多的容器,即该集群的规模越大。最终,该集群中的消息备份数量为中间件容器数量与Topic副本数的乘积,大量的数据备份保证了重要Topic的可靠性。In an example, according to the characteristic that the larger the topic capacity is, the higher the degree of importance is, in order to ensure the disaster recovery capability of business data and the reliability of the message middleware service, the average capacity of the topic collection can be used as an indicator to measure the entire topic collection. Based on the importance level, the number of containers required to deploy the message middleware container cluster of the topic set is determined according to the importance level of the topic set. The average capacity is the ratio of the topic set capacity to the number of topics. A cluster with a larger average capacity indicates that the message middleware messages on the cluster are more important, and more containers need to be allocated, that is, the larger the cluster size is. Ultimately, the number of message backups in the cluster is the product of the number of middleware containers and the number of topic copies. A large number of data backups ensure the reliability of important topics.
在实际的应用中,假定Topic集合A={T 1,T 2,T 3,T 4,T 5},Topic集合B={T 6,T 7,T 8,T 9}。因此,具有与集合A与集合B相对应的消息中间件集群S A和S B。假定T 1、T 2、 T 3、T 4、T 5副本数分别为9、2、3、7、9,则集群S A平均容量
Figure PCTCN2021104775-appb-000001
T 6,T 7,T 8,T 9的副本数分别为,4、1、8、3,则集群S B平均容量
Figure PCTCN2021104775-appb-000002
预设的平均容量与消息中间件容器数量的比值为2:1,则最终为消息中间件集群S A分配3个容器,为S B分配两个容器,从而实现各个容器间负载分布均匀的目的,降低承载了重要程度较高Topic的容器的读写压力。
In practical applications, it is assumed that Topic set A={T 1 , T 2 , T 3 , T 4 , T 5 }, Topic set B={T 6 , T 7 , T 8 , T 9 }. Thus, there are message middleware clusters S A and S B corresponding to Set A and Set B. Assuming that the number of T 1 , T 2 , T 3 , T 4 , and T 5 replicas are 9, 2, 3, 7, and 9, respectively, the average capacity of cluster SA
Figure PCTCN2021104775-appb-000001
The number of copies of T 6 , T 7 , T 8 , and T 9 are 4, 1, 8, and 3, respectively, then the average capacity of cluster SB
Figure PCTCN2021104775-appb-000002
The ratio of the preset average capacity to the number of message middleware containers is 2:1, then finally three containers are allocated to the message middleware cluster SA and two containers are allocated to S B , so as to achieve uniform load distribution among the containers , to reduce the read and write pressure of containers that carry more important topics.
需要说明的是,本实施例中的上述各示例均为方便理解进行的举例说明,并不对本申请的技术方案构成限定。It should be noted that the above examples in this embodiment are all examples for easy understanding, and do not limit the technical solutions of the present application.
与相关技术相比,本实施例中的消息中间件的布局方法通过对所有的Topic进行解耦分组,以消息中间件集群构成的集群对消息中间件进行分布式部署,将具有耦合关系的Topic布局到一个消息中间件容器集群中,从而降低部署各个Topic的消息中间件容器集群之间的耦合性,使得多服务访问消息中间件的服务压力得到分散,从而提高消息中间件集群整体的可靠性,避免单容器集群宕机导致大面积服务瘫痪的可能。而且,由于部署在一个消息中间件集群中的各Topic是不存在耦合关系的Topic,因此可以减小多个服务之间访问消息中间件的耦合,进而提高消息中间件的工作稳定性,同时也能够简化消息中间件的部署过程。另外,对平均容量高的Topic集合,即重要程度高的容器集群,分配更多的容器,从而进一步保证重要服务的可靠性。Compared with the related art, the layout method of the message middleware in this embodiment decouples and groups all the topics, deploys the message middleware in a cluster formed by the message middleware cluster, and distributes the topics with the coupling relationship. Layout into a message middleware container cluster, thereby reducing the coupling between the message middleware container clusters deploying each topic, dispersing the service pressure of multi-service access to message middleware, thereby improving the overall reliability of the message middleware cluster , to avoid the possibility of large-scale service paralysis caused by single-container cluster downtime. Moreover, since each topic deployed in a message middleware cluster is a topic without a coupling relationship, the coupling between multiple services accessing the message middleware can be reduced, thereby improving the working stability of the message middleware, and at the same time. It can simplify the deployment process of message middleware. In addition, for topic sets with high average capacity, that is, container clusters with high importance, more containers are allocated to further ensure the reliability of important services.
本申请的第二实施例涉及一种消息中间件的布局方法,与本申请的第一实施例大致相同,主要的区别在于:本实施例中,根据Topic的耦合集合对所有的Topic进行解耦分组,得到多个Topic集合,包括:采用改进的贪心算法来对Topic进行解耦分组。本实施例中,改进的贪心算法的选取条件为当前遍历到的Topic与本次遍历中已选取的Topic不属于同一个耦合集合。结束条件包括:本次遍历中已选取的Topic的容量总和大于或等于预设容量以及初始Topic集合为空。The second embodiment of the present application relates to a layout method for message middleware, which is roughly the same as the first embodiment of the present application. The main difference is that in this embodiment, all topics are decoupled according to the coupling set of topics. Grouping to obtain multiple topic sets, including: using an improved greedy algorithm to decouple and group topics. In this embodiment, the selection condition of the improved greedy algorithm is that the topic currently traversed does not belong to the same coupling set as the topic that has been selected in this traversal. The end conditions include: the total capacity of the topics selected in this traversal is greater than or equal to the preset capacity and the initial topic set is empty.
下面结合附图对本实施例作进一步阐述,本实施例中的消息中间件的布局方法如图5所示,具体包括:The present embodiment will be further described below with reference to the accompanying drawings. The layout method of the message middleware in this embodiment is shown in FIG. 5 , and specifically includes:
步骤501,获取各个消费主题Topic的元数据。Step 501: Obtain metadata of each consumption topic topic.
步骤502,根据Topic的元数据生成Topic的耦合集合。 Step 502 , generating a coupled set of topics according to the metadata of the topics.
步骤501和步骤502与本申请第一实施例中的步骤401和步骤402大致相同,相关的实施细节已在本申请第一实施例中进行了具体说明,在本实施例中不再赘述。 Steps 501 and 502 are substantially the same as steps 401 and 402 in the first embodiment of the present application, and the relevant implementation details have been specifically described in the first embodiment of the present application, and are not repeated in this embodiment.
步骤503,采用改进的贪心算法,根据Topic的耦合集合对所有的Topic进行解耦分组,得到多个Topic集合。 Step 503 , using an improved greedy algorithm, decoupling and grouping all Topics according to the Topic coupling set to obtain multiple Topic sets.
具体的说,本实施例中的贪心算法其特点在于,对贪心算法的遍历对象进行预处理,也就是将所有的Topic根据重要程度进行排序后生成一有序的Topic集合,即本实施例中所提到的初始集合,贪心算法的贪心策略将按照集合中元素的顺序来执行遍历过程。此外,贪心策略中的选取条件为:当前遍历到的Topic与本次遍历中已选取的Topic不属于同一个耦合集合;结束条件为本次遍历中已选取的Topic的容量总和大于或等于预设容量以及初始集合为空。Specifically, the greedy algorithm in this embodiment is characterized in that the traversal objects of the greedy algorithm are preprocessed, that is, an ordered set of topics is generated after sorting all topics according to their importance, that is, in this embodiment For the mentioned initial set, the greedy strategy of the greedy algorithm will perform the traversal process in the order of the elements in the set. In addition, the selection conditions in the greedy strategy are: the topic currently traversed does not belong to the same coupling set as the topic selected in this traversal; the end condition is that the total capacity of the topics selected in this traversal is greater than or equal to the preset The capacity as well as the initial set are empty.
在一个例子中,采用贪心算法根据Topic的耦合集合对所有的Topic进行解耦分组,得到 多个Topic集合的过程如图6所示,具体包括:In one example, the greedy algorithm is used to decouple and group all Topics according to their coupled sets, and the process of obtaining multiple Topic sets is shown in Figure 6, which specifically includes:
步骤5031,根据Topic的重要程度对所有Topic进行排序,得到初始集合。Step 5031: Sort all Topics according to their importance to obtain an initial set.
具体地说,以Kafka作为消息中间件为例,Topic的重要程度与Topic备份的副本数量正相关,即Topic的重要程度通过Topic的副本拷贝数量来表示,初始集合中的Topic按照重要程度有序排列。后续的贪心算法将会按照已有的顺序来访问初始集合中的Topic。Specifically, taking Kafka as the message middleware as an example, the importance of a topic is positively related to the number of copies of the topic backup, that is, the importance of a topic is represented by the number of copies of the topic, and the topics in the initial set are ordered according to their importance. arrangement. Subsequent greedy algorithms will access the topics in the initial set in the existing order.
步骤5032,新建Topic集合。 Step 5032, create a topic collection.
具体地说,新建的Topic集合为空集,当根据后续的贪心算法在访问到满足选取条件的Topic后,选取该Topic并加入到该Topic集合中。Specifically, the newly created Topic set is an empty set. After accessing a Topic that satisfies the selection condition according to the subsequent greedy algorithm, the Topic is selected and added to the Topic set.
步骤5033,遍历初始集合,依次访问初始集合中的Topic。 Step 5033, traverse the initial set, and access the Topics in the initial set in turn.
步骤5034,判断当前访问的Topic是否与Topic集合中已选取的Topic属于同一个耦合集合;若当前访问的Topic与Topic集合中已选取的Topic属于同一个耦合集合,则继续执行步骤5033,遍历初始集合;若当前访问的Topic与Topic集合中已选取的Topic不属于同一个耦合集合,则执行步骤5035。 Step 5034, determine whether the currently accessed Topic and the selected Topic in the Topic set belong to the same coupled set; if the currently accessed Topic and the selected Topic in the Topic set belong to the same coupled set, then continue to step 5033, traverse the initial Collection; if the currently accessed topic and the selected topic in the topic collection do not belong to the same coupling collection, step 5035 is executed.
步骤5035,选取当前访问的Topic加入Topic集合。Step 5035: Select the currently accessed topic to add to the topic set.
具体地说,每次访问一个Topic时,将会根据该Topic所属的耦合集合在新建的Topic集合中所有已选取的Topic查找与当前访问的Topic具有耦合关系的Topic。如果存在具有耦合关系的Topic,则不将当前访问的Topic加入到Topic集合中,继续按照顺序访问初始集合中的下一个Topic。若本次访问到的Topic,与新建的Topic集合中已有的任意一个Topic均不存在具有耦合关系,则将当前访问的Topic加入到新建的Topic集合中。Specifically, each time a Topic is accessed, the Topic that has a coupling relationship with the currently accessed Topic will be searched from all the selected Topics in the newly created Topic set according to the coupling set to which the Topic belongs. If there is a Topic with a coupling relationship, the currently accessed Topic will not be added to the Topic collection, and continue to access the next Topic in the initial collection in order. If the topic accessed this time does not have a coupling relationship with any topic in the newly created topic collection, the currently accessed topic is added to the newly created topic collection.
步骤5036,判断是否遍历结束;若遍历结束,则执行步骤5037;若遍历未结束,则继续执行步骤5033,遍历初始集合。 Step 5036, determine whether the traversal ends; if the traversal ends, execute step 5037; if the traversal does not end, continue to execute step 5033 to traverse the initial set.
具体地说,当该次遍历已经访问了初始集合中的所有Topic后,则将Topic集合进行保存,即通过该次遍历已经得到了一个Topic集合。Specifically, after the traversal has accessed all topics in the initial collection, the topic collection is saved, that is, a topic collection has been obtained through this traversal.
在一个例子中,可以在新建Topic集合之前,设置一个Topic集合的容量上限,在遍历结束之前,判断当前的Topic加入Topic集合后,Topic集合的容量是否大于或等于集合的容量上限。若Topic集合的容量大于或等于集合的容量上限,则结束遍历并直接保存当前的Topic集合。通过这一技术手段,可以控制单个Topic集合的容量,从而在尽量减少Topic集合数量的前提下,控制部署单个Topic的消息中间件容器集群所需要的容器数量,从而避免一个集群中重要的Topic过多,减小重要Topic大面积服务失效的概率。In an example, you can set the upper limit of the capacity of a topic collection before creating a new topic collection, and before the traversal ends, determine whether the capacity of the topic collection is greater than or equal to the upper limit of the collection capacity after the current topic is added to the topic collection. If the capacity of the Topic collection is greater than or equal to the upper limit of the capacity of the collection, the traversal is ended and the current Topic collection is directly saved. Through this technical means, the capacity of a single Topic set can be controlled, so as to reduce the number of Topic sets as much as possible, control the number of containers required to deploy a message middleware container cluster of a single Topic, so as to avoid the important Topic in a cluster. More, reducing the probability of large-scale service failure of important topics.
步骤5037,更新初始集合,判断更新后的初始集合是否为空;若更新后的初始集合为空,则执行步骤5038;若更新后的初始集合不为空,则再次执行步骤5032,新建一个空的Topic集合。 Step 5037, update the initial set, and determine whether the updated initial set is empty; if the updated initial set is empty, then execute step 5038; if the updated initial set is not empty, then execute step 5032 again to create a new empty set. Topic collection.
步骤5038,输出所有的Topic集合。 Step 5038, output all topic sets.
具体地说,更新初始集合的方式为:将初始集合包含的Topic与已获取的Topic集合的所有Topic的差集,作为更新后的初始集合。当更新后的初始集合为空时,则表示所有的Topic均已进行了解耦分组,此时结束贪心算法且不再执行,并将所有已经存在的Topic集合输出,作为部署消息中间件容器集群的布局依据。Specifically, the method of updating the initial set is: taking the difference set of the Topic included in the initial set and all the Topics of the acquired Topic set as the updated initial set. When the updated initial set is empty, it means that all topics have been decoupled and grouped. At this time, the greedy algorithm is terminated and no longer executed, and all existing topic sets are output as the deployment message middleware container cluster. layout basis.
而且,由于初始集合中的Topic按照重要性进行了排序,因此先得到的Topic集合中的Topic的重要程度将会较后续得到的Topic集合的更高。在这样的贪心算法执行效率较高,并 且能够将重要程度较高的Topic将会优先被分配至同一个Topic集合中,并减小最终生成的Topic集合的数量。同时,在部署重要Topic集合对应的消息中间件容器时,分配更多的容器数量,能够同时提高这些重要程度较高的Topic的可靠性,从而简化了运维人员对消息中间件集群进行部署和维护的策略。Moreover, since the Topics in the initial set are sorted according to their importance, the importance of the Topics in the Topics set obtained first will be higher than that of the Topic sets obtained later. In such a greedy algorithm, the execution efficiency is high, and the Topics with higher importance will be preferentially assigned to the same Topic set, and the number of the finally generated Topic sets will be reduced. At the same time, when deploying message middleware containers corresponding to important topic sets, allocating more containers can simultaneously improve the reliability of these highly important topics, thus simplifying the deployment and deployment of message middleware clusters by operation and maintenance personnel. maintenance strategy.
步骤504,将多个Topic集合分别部署在各消息中间件容器集群中。Step 504: Deploy multiple topic sets in each message middleware container cluster respectively.
步骤504与本申请第一实施例中的步骤404大致相同,相关的实施细节已在本申请第一实施例中进行了具体说明,在本实施例中不再赘述。Step 504 is substantially the same as step 404 in the first embodiment of the present application, and the relevant implementation details have been specifically described in the first embodiment of the present application, and will not be repeated in this embodiment.
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。The steps of the above various methods are divided only for the purpose of describing clearly. During implementation, they can be combined into one step or some steps can be split and decomposed into multiple steps. As long as the same logical relationship is included, they are all within the protection scope of this patent. ;Adding insignificant modifications to the algorithm or process or introducing insignificant designs, but not changing the core design of the algorithm and process are all within the scope of protection of this patent.
与相关技术相比,本实施例中的消息中间件的布局方法,在对所有的Topic进行解耦分组时,才有改进的贪心算法,对贪心算法所遍历的初始集合中的Topic进行排序,使得重要程度高的Topic优先被分组至同一个Topic集合中,在为部署该Topic集合部署对应的消息中间件容器时,分配更多的容器数量,分散了重要Topic访问服务消息的压力,进一步地提高了重要消息中间件的可靠性。同时,能够简化运维人员对消息中间件集群进行部署和维护的策略。Compared with the related art, in the layout method of the message middleware in this embodiment, only when all topics are decoupled and grouped, an improved greedy algorithm can be used to sort the topics in the initial set traversed by the greedy algorithm, It makes the topics with high importance priority to be grouped into the same topic collection. When deploying the corresponding message middleware container for the topic collection, more containers are allocated, which disperses the pressure of important topics to access service messages, and further Improves the reliability of important message middleware. At the same time, it can simplify the strategy for deploying and maintaining message middleware clusters for operation and maintenance personnel.
本申请的第三实施例涉及一种消息中间件的布局装置,如图7所示,包括:The third embodiment of the present application relates to a layout device for message middleware, as shown in FIG. 7 , including:
获取模块701,用于获取Topic的耦合集合;其中,各耦合集合中的Topic具有耦合关系。The obtaining module 701 is configured to obtain a coupling set of Topics; wherein, the Topics in each coupling set have a coupling relationship.
在一个例子中,生成模块701还可以用于根据服务消息元组,或,同时根据服务消息元组及Topic消息元组来生成Topic耦合集合。In one example, the generating module 701 may also be configured to generate the Topic coupling set according to the service message tuple, or simultaneously according to the service message tuple and the Topic message tuple.
在另一个例子中,生成模块701还可以用于将生产者服务集合或消费者服务集合中具有相同服务的Topic生成为一耦合集合。In another example, the generating module 701 can also be used to generate the Topic with the same service in the producer service set or the consumer service set as a coupled set.
分组模块702,用于根据Topic的耦合集合对所有的Topic进行解耦分组,得到多个Topic集合。The grouping module 702 is used for decoupling and grouping all the Topics according to the coupling set of Topics to obtain multiple Topic sets.
在一个例子中,分组模块702还可以用于采用改进的贪心算法来对Topic进行解耦分组。解耦分组具体的过程包括:根据Topic的重要程度对所有Topic进行排序,得到初始集合;采用贪心策略遍历初始集合,并将选取的Topic放在同一个Topic集合中;其中,贪心策略的选取条件为:当前遍历到的Topic与本次遍历中已选取的Topic不属于同一个耦合集合;将初始集合包含的Topic与已获取的Topic集合的所有Topic的差集,作为更新后的初始集合;对更新后的初始集合重复执行贪心策略的遍历,得到新的Topic集合以及初始集合的更新,直至更新后的初始集合为空。In an example, the grouping module 702 can also be used to decouple the Topic by adopting an improved greedy algorithm. The specific process of decoupling grouping includes: sorting all Topics according to their importance to obtain the initial set; traversing the initial set using a greedy strategy, and placing the selected Topics in the same Topic set; among them, the selection conditions of the greedy strategy is: the currently traversed Topic does not belong to the same coupled set as the Topic selected in this traversal; the difference between the Topic contained in the initial set and all the Topics in the acquired Topic set is used as the updated initial set; yes The updated initial set repeats the traversal of the greedy strategy to obtain a new topic set and the update of the initial set, until the updated initial set is empty.
集群部署模块703,用于将多个Topic集合分别部署在各消息中间件容器集群中,其中,一个Topic集合部署在一个消息中间件容器集群中。The cluster deployment module 703 is configured to deploy multiple topic sets in each message middleware container cluster, wherein one topic set is deployed in one message middleware container cluster.
在一个例子中,集群部署模块703还可以用于根据Topic集合中的Topic数量以及各个Topic的副本数量,确定部署的消息中间件容器集群所需的消息中间件容器的数量N;将Topic集合部署在N个消息中间件容器中。In an example, the cluster deployment module 703 may also be configured to determine the number N of message middleware containers required by the deployed message middleware container cluster according to the number of topics in the topic set and the number of copies of each topic; deploy the topic set in N message middleware containers.
在另一个例子中,集群部署模块704还可以用于根据Topic的数量以及各个Topic备份的 副本数量计算出Topic集合的平均容量;根据Topic集合的平均容量确定N,其中,N与Topic集合的平均容量正相关。In another example, the cluster deployment module 704 can also be configured to calculate the average capacity of the Topic set according to the number of Topics and the number of copies of each Topic backup; N is determined according to the average capacity of the Topic set, where N and the average of the Topic set capacity is positively correlated.
不难发现,本实施例为与第一实施例或第二实施例相对应的虚拟装置实施例,本实施例可与第一实施例或第二实施例互相配合实施。第一实施例或第二实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例或第二实施例中。It is not difficult to find that this embodiment is a virtual device embodiment corresponding to the first embodiment or the second embodiment, and this embodiment can be implemented in cooperation with the first embodiment or the second embodiment. The related technical details mentioned in the first embodiment or the second embodiment are still valid in this embodiment, and are not repeated here in order to reduce repetition. Correspondingly, the related technical details mentioned in this embodiment can also be applied to the first embodiment or the second embodiment.
值得一提的是,本实施中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本申请的创新部分,本实施例中并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。It is worth mentioning that all modules involved in this implementation are logical modules. In practical applications, a logical unit may be a physical unit, a part of a physical unit, or multiple physical units. combination implementation. In addition, in order to highlight the innovative part of the present application, this embodiment does not introduce units that are not closely related to solving the technical problem raised by the present application, but this does not mean that there are no other units in this embodiment.
本申请的第四实施例涉及一种消息中间件的容器多集群分布式系统,本实施例可以包括本申请第三实施例中所记载的一种消息中间件的布局装置。The fourth embodiment of the present application relates to a container multi-cluster distributed system of message middleware, and this embodiment may include a layout device for message middleware described in the third embodiment of the present application.
下面结合附图对本实施例作进一步阐述,本实施例中的消息中间件的容器多集群分布式系统如图8所示,包括:This embodiment will be further elaborated below with reference to the accompanying drawings. The container multi-cluster distributed system of the message middleware in this embodiment is shown in FIG. 8 , including:
基础环境模块801,用于将自动化编译的运行环境、构建工具、安装环境、镜像运行环境通过一键脚本的方式自动化搭建和维护。The basic environment module 801 is used to automatically build and maintain the automatically compiled running environment, construction tool, installation environment, and image running environment through one-click scripting.
具体地说,基础环境的搭建既包括编译环境的搭建,也包括容器环境的搭建安装,该模块主要根据Kafka源码的需求搭建编译环境,其中包括Java环境的检测安装、Scala环境的适配安装,Gradle环境的适配安装,由于Kafka源码会有推荐安装的环境版本,因此需要根据Gradle配置文件去适配环境安装包来搭建编译环境;另外,需要搭建容器环境,该环境主要是docker和docker-compose环境。Specifically, the construction of the basic environment includes not only the construction of the compilation environment, but also the construction and installation of the container environment. This module mainly builds the compilation environment according to the requirements of the Kafka source code, including the detection and installation of the Java environment and the adaptation and installation of the Scala environment. For the adaptation installation of the Gradle environment, since the Kafka source code will have a recommended environment version for installation, it is necessary to adapt the environment installation package according to the Gradle configuration file to build a compilation environment; in addition, a container environment needs to be built, which is mainly docker and docker- compose environment.
源码编译模块802,用于将个性化定制的开源消息中间件源码通过一系列标准化操作编译打包成压缩包形式。The source code compilation module 802 is used for compiling and packaging the customized open source message middleware source code into a compressed package form through a series of standardized operations.
具体地说,在基础环境模块完成的基础上,源码编译模块通过导入用户开发并测试通过的个性化定制Kafka源码,使用一键编译脚本,启动一系列标准化编译动作,利用Gradle编译工具将Kafka打包成安装包形式。Specifically, on the basis of the completion of the basic environment module, the source code compilation module imports the customized Kafka source code developed and tested by the user, uses a one-click compilation script, starts a series of standardized compilation actions, and uses the Gradle compilation tool to package Kafka into the form of an installation package.
其中,个性化定制的消息中间件源码是指用户根据自己的业务场景需求或具有重新编译需求的开源消息中间件源码进行二次开发并通过所有测试的可编译源码。一系列表转化操作是指将基础环境和编译环境构建工具的搭建通过自动化脚本对操作进行封装,该自动化脚本包含根据源码需求进行基础环境的安装以及跟随消息中间件源码的更新、编译依赖的拉取、安装包的打包。Among them, the personalized customized message middleware source code refers to the compilable source code that the user performs secondary development according to his own business scenario requirements or the open source message middleware source code with recompilation requirements and passes all tests. A series of table conversion operations refers to encapsulating the construction of the basic environment and compilation environment construction tools through an automated script. The automated script includes the installation of the basic environment according to the source code requirements, and the update of the source code of the message middleware and the pull of the compilation dependencies. Take and install the package.
镜像生成模块803,用于生成支撑系统的消息中间件镜像、其所需的基础镜像以及支撑消息中间件的上层应用镜像。The image generation module 803 is configured to generate a message middleware image supporting the system, a basic image required by the system, and an upper-layer application image supporting the message middleware.
具体地说,打包Topic集合及集合监控所需要的容器镜像,该模块打包的Kafka镜像所使用安装包来自于源码编译模块生成的安装包,其他两个镜像Zookeeper和Kafka-Eagle的安装包均需要从官网上拉取;构建镜像主要通过Shell脚本和Dockerfile文件来执行,并将镜像更新到镜像仓库供生产环境使用。Specifically, to package the container image required for topic collection and collection monitoring, the installation package used by the Kafka image packaged by this module comes from the installation package generated by the source code compilation module, and the installation packages of the other two images Zookeeper and Kafka-Eagle are required. Pull from the official website; build the image mainly through Shell script and Dockerfile file, and update the image to the image warehouse for production environment use.
服务管理模块804,用于从多个服务业务数据重要性和服务相互耦合关系两个维度将服 务重新布局分配到不同的消息中间件集群上。The service management module 804 is configured to rearrange and allocate services to different message middleware clusters from two dimensions of the importance of business data of multiple services and the mutual coupling relationship of services.
具体地说,服务管理模块主要实现Kafka集群分配给各个微服务的重新布局,该模块首先将微服务信息数据抽象出Topic微服务元数据,通过生产Topic集合和消费Topic集合可以提取出微服务之间的耦合关系,并通过以Topic为中心采用改进的贪心算法对微服务Topic在集群中的位置进行重新布局。Specifically, the service management module mainly realizes the rearrangement of the Kafka cluster assigned to each microservice. The module first abstracts the microservice information data from the topic microservice metadata, and can extract the microservices by producing the topic collection and consuming the topic collection. The coupling relationship between the microservices and the topic is rearranged in the cluster by adopting an improved greedy algorithm centered on the topic.
集群部署模块805,用于通过容器集群元数据将布局好的Topic部署在消息中间件多集群上实现容器集群群。The cluster deployment module 805 is configured to deploy the laid out Topics on the message middleware multi-cluster through the container cluster metadata to implement the container cluster group.
进一步地,集群部署模块还用于通过集群管理工具(docker-compose、docker-manage)将镜像生成模块生成的镜像构建微服务布局集群形成容器集群群,该集群群有多个容器集群元组成,根据容器集群元概念,每个容器集群对应一个Topic集合。Further, the cluster deployment module is also used to construct a microservice layout cluster from the image generated by the image generation module through the cluster management tool (docker-compose, docker-manage) to form a container cluster group, and the cluster group is composed of a plurality of container cluster elements. According to the concept of container cluster meta, each container cluster corresponds to a topic set.
安全认证模块806,用于通过动态SSL证书更新实现客户端的安全认证访问。The security authentication module 806 is configured to realize the security authentication access of the client through dynamic SSL certificate update.
具体地说,本实施例中安全认证模块主要是用来管理用户客户端SSL认证的动态更新、Zookeeper的ACL授权控制以及Kafka本身需要的安全认证。Specifically, the security authentication module in this embodiment is mainly used to manage the dynamic update of the SSL authentication of the user client, the ACL authorization control of Zookeeper, and the security authentication required by Kafka itself.
统一接口模块807,用于通过封装好的接口配置为外部客户端提供接口访问。The unified interface module 807 is configured to provide interface access for external clients through the packaged interface configuration.
具体地说,本实施例中统一接口模块为云管平台提供客户端和服务端的统一接口,其中服务端接口主要在实际部署环境中,Topic在各个集群环境上的创建,该接口包括Topic创建的一系列参数,可通过用户自定义进行创建;客户端接口包含了生产者和消费者客户端连接Kafka服务端的配置参数接口。Specifically, the unified interface module in this embodiment provides a unified interface between the client and the server for the cloud management platform. The server interface is mainly used in the actual deployment environment. Topic is created in each cluster environment, and the interface includes the interface created by the topic. A series of parameters can be created by user customization; the client interface includes the configuration parameter interface for the producer and consumer clients to connect to the Kafka server.
运行监控模块808,用于采用现有开源的消息中间件监控工具实现消息中间件集群监控。The operation monitoring module 808 is used for implementing message middleware cluster monitoring by using an existing open source message middleware monitoring tool.
具体地说,运行监控模块主要是通过镜像打包的Kafka-Eagle镜像构建的Kafka监控容器,来监控Kafka Topic状态、生产和消费消息的吞吐量、容器集群的状态以及事件告警。Specifically, the operation monitoring module mainly uses the Kafka monitoring container built by the image-packaged Kafka-Eagle image to monitor the Kafka topic status, the throughput of production and consumption messages, the status of the container cluster, and event alarms.
值得一提的是,本实施中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本申请的创新部分,本实施例中并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。It is worth mentioning that all modules involved in this implementation are logical modules. In practical applications, a logical unit may be a physical unit, a part of a physical unit, or multiple physical units. combination implementation. In addition, in order to highlight the innovative part of the present application, this embodiment does not introduce units that are not closely related to solving the technical problem raised by the present application, but this does not mean that there are no other units in this embodiment.
本申请的第五实施例涉及一种服务器,如图9所示,包括:至少一个处理器901;以及,与至少一个处理器901通信连接的存储器902;其中,存储器902存储有可被至少一个处理器901执行的指令,指令被至少一个处理器901执行,以使至少一个处理器901能够执行第一、或第二实施例中的消息中间件的布局方法。The fifth embodiment of the present application relates to a server, as shown in FIG. 9 , comprising: at least one processor 901; and a memory 902 connected in communication with the at least one processor 901; Instructions executed by the processor 901, the instructions are executed by at least one processor 901, so that the at least one processor 901 can execute the layout method of the message middleware in the first or second embodiment.
其中,存储器902和处理器901采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器901和存储器902的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器901处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器901。处理器901负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器902可以被用于存储处理器901在执行操作时所使用的数据。The memory 902 and the processor 901 are connected by a bus, and the bus may include any number of interconnected buses and bridges, and the bus connects one or more processors 901 and various circuits of the memory 902 together. The bus may also connect together various other circuits, such as peripherals, voltage regulators, and power management circuits, which are well known in the art and therefore will not be described further herein. The bus interface provides the interface between the bus and the transceiver. A transceiver may be a single element or multiple elements, such as multiple receivers and transmitters, providing a means for communicating with various other devices over a transmission medium. The data processed by the processor 901 is transmitted on the wireless medium through the antenna, and further, the antenna also receives the data and transmits the data to the processor 901 . Processor 901 is responsible for managing the bus and general processing, and may also provide various functions including timing, peripheral interface, voltage regulation, power management, and other control functions. The memory 902 may be used to store data used by the processor 901 when performing operations.
本申请第六实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。The sixth embodiment of the present application relates to a computer-readable storage medium storing a computer program. The above method embodiments are implemented when the computer program is executed by the processor.
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。That is, those skilled in the art can understand that all or part of the steps in the method of implementing the above embodiments can be completed by instructing relevant hardware through a program, and the program is stored in a storage medium and includes several instructions to make a device ( It may be a single chip microcomputer, a chip, etc.) or a processor (processor) to execute all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, Read-Only Memory (ROM, Read-Only Memory), Random Access Memory (RAM, Random Access Memory), magnetic disk or optical disk and other media that can store program codes .
本领域的普通技术人员可以理解,上述各实施例是实现本申请的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。Those of ordinary skill in the art can understand that the above-mentioned embodiments are specific embodiments for realizing the present application, and in practical applications, various changes in form and details can be made without departing from the spirit and the spirit of the present application. Scope.

Claims (10)

  1. 一种消息中间件的布局方法,应用于多集群分布式系统,所述方法包括:A layout method for message middleware, applied to a multi-cluster distributed system, the method comprising:
    获取Topic的耦合集合;其中,各所述耦合集合中的Topic具有耦合关系;Obtain a coupled set of topics; wherein, the topics in each of the coupled sets have a coupling relationship;
    根据所述Topic的耦合集合对所有的所述Topic进行解耦分组,得到多个Topic集合;All the Topics are decoupled and grouped according to the Topic coupling set to obtain multiple Topic sets;
    将多个所述Topic集合分别部署在各消息中间件容器集群中,其中,一个所述Topic集合部署在一个消息中间件容器集群中。A plurality of the topic sets are respectively deployed in each message middleware container cluster, wherein one of the topic sets is deployed in one message middleware container cluster.
  2. 根据权利要求1所述的消息中间件的布局方法,其中,所述根据所述Topic的耦合集合对所有的所述Topic进行解耦分组,得到多个Topic集合,包括:The layout method of the message middleware according to claim 1, wherein the decoupling grouping of all the Topics according to the Topic coupling set is performed to obtain multiple Topic sets, including:
    根据所述Topic的重要程度对所有所述Topic进行排序,得到初始集合;Sort all the Topics according to the importance of the Topics to obtain an initial set;
    采用贪心策略遍历所述初始集合,并将选取的Topic放在同一个Topic集合中;其中,所述贪心策略的选取条件为:当前遍历到的Topic与本次遍历中已选取的Topic不属于同一个所述耦合集合;The initial set is traversed by a greedy strategy, and the selected Topics are placed in the same Topic set; wherein, the selection condition of the greedy strategy is: the currently traversed Topic and the selected Topic in this traversal do not belong to the same a said coupled set;
    将所述初始集合包含的Topic与已获取的Topic集合的所有Topic的差集,作为更新后的初始集合;Use the difference set of the Topic contained in the initial set and all Topics of the acquired Topic set as the updated initial set;
    对所述更新后的初始集合重复执行所述贪心策略的遍历,得到新的Topic集合以及初始集合的更新,直至所述更新后的初始集合为空。The traversal of the greedy strategy is repeatedly performed on the updated initial set to obtain a new topic set and an update of the initial set, until the updated initial set is empty.
  3. 根据权利要求2所述的消息中间件的布局方法,其中,所述采用贪心策略遍历所述初始集合,包括:The layout method of message middleware according to claim 2, wherein the traversing the initial set using a greedy strategy comprises:
    若在本次遍历中已选取的Topic的容量总和大于或等于预设容量,则结束本次遍历。If the total capacity of the topics selected in this traversal is greater than or equal to the preset capacity, the traversal ends.
  4. 根据权利要求2或3中所述的消息中间件的布局方法,其中,所述Topic的重要程度与所述Topic备份的副本数量正相关。The layout method of message middleware according to claim 2 or 3, wherein the importance of the topic is positively related to the number of copies of the topic backup.
  5. 根据权利要求1至4中任一项所述的消息中间件的布局方法,其中,在所述获取Topic的耦合集合之前,还包括:The layout method for message middleware according to any one of claims 1 to 4, wherein before the acquiring the coupling set of topics, further comprising:
    根据所述Topic的元数据确定所述Topic的生产者服务集合以及消费者服务集合;Determine the set of producer services and the set of consumer services of the Topic according to the metadata of the Topic;
    将所述生产者服务集合或所述消费者服务集合中具有相同服务的Topic生成为一耦合集合。Generating Topics with the same service in the producer service set or the consumer service set as a coupled set.
  6. 根据权利要求1至5中任一项所述的消息中间件的布局方法,其中,所述将多个所述Topic集合分别部署在各消息中间件容器集群中,包括:The method for laying out message middleware according to any one of claims 1 to 5, wherein the deploying a plurality of the topic sets respectively in each message middleware container cluster comprises:
    根据所述Topic集合中的Topic数量以及各个Topic的副本数量,确定部署的消息中间件容器集群所需的消息中间件容器的数量N;Determine the number N of message middleware containers required by the deployed message middleware container cluster according to the number of topics in the topic set and the number of copies of each topic;
    将所述Topic集合部署在N个消息中间件容器中。The Topic set is deployed in N message middleware containers.
  7. 根据权利要求6所述的消息中间件的布局方法,其中,所述根据所述Topic集合中的 Topic数量以及各个Topic的副本数量,确定部署的消息中间件容器集群所需的消息中间件容器的数量N,包括:The method for laying out message middleware according to claim 6, wherein, according to the number of topics in the topic set and the number of copies of each topic, the number of message middleware containers required by the deployed message middleware container cluster is determined. Quantity N, including:
    根据所述Topic的数量以及各个Topic备份的副本数量计算出所述Topic集合的平均容量;Calculate the average capacity of the Topic set according to the number of Topic and the number of copies of each Topic backup;
    根据所述Topic集合的平均容量确定所述N,其中,所述N与所述Topic集合的平均容量正相关。The N is determined according to the average capacity of the Topic set, where the N is positively correlated with the average capacity of the Topic set.
  8. 一种消息中间件的布局装置,包括:A layout device for message middleware, comprising:
    获取模块,用于获取Topic的耦合集合;其中,各所述耦合集合中的Topic具有耦合关系;an acquisition module for acquiring a coupled set of topics; wherein, the topics in each of the coupled sets have a coupling relationship;
    分组模块,用于根据所述Topic的耦合集合对所有的所述Topic进行解耦分组,得到多个Topic集合;a grouping module, configured to decouple and group all the Topics according to the coupling set of the Topics to obtain multiple Topic sets;
    集群部署模块,用于将多个所述Topic集合分别部署在各消息中间件容器集群中,其中,一个所述Topic集合部署在一个消息中间件容器集群中。The cluster deployment module is configured to deploy a plurality of the topic sets in each message middleware container cluster, wherein one of the topic sets is deployed in one message middleware container cluster.
  9. 一种服务器,包括:A server that includes:
    至少一个处理器;以及,at least one processor; and,
    与所述至少一个处理器通信连接的存储器;其中,a memory communicatively coupled to the at least one processor; wherein,
    所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述的消息中间件的布局方法。The memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the execution of any one of claims 1 to 7 The layout method of the message middleware described above.
  10. 一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的消息中间件的布局方法。A computer-readable storage medium storing a computer program, when the computer program is executed by a processor, the method for laying out the message middleware according to any one of claims 1 to 7 is implemented.
PCT/CN2021/104775 2020-08-18 2021-07-06 Message-oriented middleware layout method and apparatus, server, and storage medium WO2022037293A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010833757.4A CN114153623A (en) 2020-08-18 2020-08-18 Layout method and device of message middleware, server and storage medium
CN202010833757.4 2020-08-18

Publications (1)

Publication Number Publication Date
WO2022037293A1 true WO2022037293A1 (en) 2022-02-24

Family

ID=80322532

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/104775 WO2022037293A1 (en) 2020-08-18 2021-07-06 Message-oriented middleware layout method and apparatus, server, and storage medium

Country Status (2)

Country Link
CN (1) CN114153623A (en)
WO (1) WO2022037293A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040240462A1 (en) * 2003-05-27 2004-12-02 Sun Microsystems, Inc. Hashing based messaging approach to a cluster
CN106293968A (en) * 2016-08-04 2017-01-04 华中科技大学 A kind of intercommunication system based on Kafka message-oriented middleware and method
US20180191813A1 (en) * 2017-01-02 2018-07-05 International Business Machines Corporation MQTT cluster shared subscription hub for fat-pipe cloud applications
CN110008286A (en) * 2019-03-26 2019-07-12 华南理工大学 A kind of injection molding equipment big data acquisition and storage system and method
CN110875885A (en) * 2018-08-31 2020-03-10 武汉斗鱼网络科技有限公司 Message processing method, server, terminal, system and storage medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040240462A1 (en) * 2003-05-27 2004-12-02 Sun Microsystems, Inc. Hashing based messaging approach to a cluster
CN106293968A (en) * 2016-08-04 2017-01-04 华中科技大学 A kind of intercommunication system based on Kafka message-oriented middleware and method
US20180191813A1 (en) * 2017-01-02 2018-07-05 International Business Machines Corporation MQTT cluster shared subscription hub for fat-pipe cloud applications
CN110875885A (en) * 2018-08-31 2020-03-10 武汉斗鱼网络科技有限公司 Message processing method, server, terminal, system and storage medium
CN110008286A (en) * 2019-03-26 2019-07-12 华南理工大学 A kind of injection molding equipment big data acquisition and storage system and method

Also Published As

Publication number Publication date
CN114153623A (en) 2022-03-08

Similar Documents

Publication Publication Date Title
US11487771B2 (en) Per-node custom code engine for distributed query processing
CN100578455C (en) Resource functionality verification before use by a grid job submitted to a grid environment
CN109150987B (en) Two-layer container cluster elastic expansion method based on host layer and container layer
US11169787B2 (en) Software acceleration platform for supporting decomposed, on-demand network services
WO2021190360A1 (en) Virtualized resource scheduling system and method in vehicle diagnostic cloud platform
WO2020147573A1 (en) Method and device for instantiating virtualized network function
CN103473696A (en) Method and system for collecting, analyzing and distributing internet business information
CN112199427A (en) Data processing method and system
CN109739640A (en) A kind of container resource management system based on Shen prestige framework
CN116777182B (en) Task dispatch method for semiconductor wafer manufacturing
US20220179711A1 (en) Method For Platform-Based Scheduling Of Job Flow
CN115757552B (en) Bank historical data management system based on distributed microservice
WO2024037629A1 (en) Data integration method and apparatus for blockchain, and computer device and storage medium
CN114448983A (en) ZooKeeper-based distributed data exchange method
CN113141269A (en) Data acquisition method, device and system
Albrecht et al. Making work queue cluster-friendly for data intensive scientific applications
CN102656572B (en) Method, program, and system for forming configuration information of configuring element of system containing configuring element wherein acquisition of configuration information is limited
CN109951370B (en) Hierarchical interconnection method and device for big data centers
CN102055779A (en) Method, device and system for generating HA (High Availability) group
US20240036910A1 (en) Meta-level management system that aggregates information and functionalities of computational-resource management systems and that provides new management functionalities
WO2022037293A1 (en) Message-oriented middleware layout method and apparatus, server, and storage medium
US11061719B2 (en) High availability cluster management of computing nodes
CN116226067A (en) Log management method, log management device, processor and log platform
CN113824801B (en) Intelligent integration terminal unified access management component system
WO2023185300A1 (en) Container storage management method and apparatus

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21857388

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 07.07.2023)

122 Ep: pct application non-entry in european phase

Ref document number: 21857388

Country of ref document: EP

Kind code of ref document: A1