Multi-datacenter message queue
First Claim
1. A method comprising:
- receiving from a first message queue, a message encoded in a first message queue protocol associated with the first message queue;
generating a translated message by translating the message from the first message queue protocol to an application layer messaging protocol;
transmitting, utilizing the application layer messaging protocol, the translated message to a server, the translated message updating a second message queue, the second message queue being encoded in a second message queue protocol; and
determining whether a connection to the server is active,wherein,the message queue protocol is a first message queue protocol selected from the group consisting of Kestrel, RABBITMQ, APACHE Kafka, and ACTIVEMQ, andthe second message queue protocol is a different message queue protocol selected from the group consisting of Kestrel, RABBITMQ, APACHE Kafka, and ACTIVEMQ.
1 Assignment
0 Petitions
Accused Products
Abstract
Approaches are disclosed for distributing messages across multiple data centers where the data centers do not store messages using a same message queue protocol. In some embodiment, a network element translates messages from a message queue protocol (e.g., Kestrel, RABBITMQ, APACHE Kafka, and ACTIVEMQ) to an application layer messaging protocol (e.g., XMPP, MQTT, WebSocket protocol, or other application layer messaging protocols). In other embodiments, a network element translates messages from an application layer messaging protocol to a message queue protocol. Using the new approaches disclosed herein, data centers communicate using, at least in part, application layer messaging protocols to disconnect the message queue protocols used by the data centers and enable sharing messages between messages queues in the data centers. Consequently, the data centers can share messages regardless of whether the underlying message queue protocols used by the data centers (and the network devices therein) are compatible with one another.
446 Citations
20 Claims
-
1. A method comprising:
-
receiving from a first message queue, a message encoded in a first message queue protocol associated with the first message queue; generating a translated message by translating the message from the first message queue protocol to an application layer messaging protocol; transmitting, utilizing the application layer messaging protocol, the translated message to a server, the translated message updating a second message queue, the second message queue being encoded in a second message queue protocol; and determining whether a connection to the server is active, wherein, the message queue protocol is a first message queue protocol selected from the group consisting of Kestrel, RABBITMQ, APACHE Kafka, and ACTIVEMQ, and the second message queue protocol is a different message queue protocol selected from the group consisting of Kestrel, RABBITMQ, APACHE Kafka, and ACTIVEMQ. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus comprising:
-
a network interface, the network interface being configured to receive, from a first message queue, a message encoded in a first message queue protocol associated with the first message queue; a memory element to store code; and at least one processor coupled to the memory element and network interface, wherein the at least one processor is to execute the code to perform operations comprising; generating a translated message by translating the message from the first message queue protocol to an application layer messaging protocol; transmitting, utilizing the application layer messaging protocol and the network interface, the translated message to a server, wherein the translated message is to update a second message queue encoded in a second message queue protocol; and determining whether a connection to the server is active, wherein, the message queue protocol is a first message queue protocol selected from the group consisting of Kestrel, RABBITMQ, APACHE Kafka, and ACTIVEMQ, and the second message queue protocol is a different message queue protocol selected from the group consisting of Kestrel, RABBITMQ, APACHE Kafka, and ACTIVEMQ. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer-readable non-transitory medium comprising instructions, that when executed by at least one processor configure the at least one processor to perform operations comprising:
-
receiving from a first message queue, a message encoded in a first message queue protocol associated with the first message queue; generating a translated message by translating the message from the first message queue protocol to an application layer messaging protocol; transmitting, utilizing the application layer messaging protocol, the translated message to a server, wherein the translated message update a second message queue, the second message queue being encoded in a second message queue protocol; and determining whether a connection to the server is active, wherein, the message queue protocol is a first message queue protocol selected from the group consisting of Kestrel, RABBITMQ, APACHE Kafka, and ACTIVEMQ, and the second message queue protocol is a different message queue protocol selected from the group consisting of Kestrel, RABBITMQ, APACHE Kafka, and ACTIVEMQ. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification