AMQP Proxy

105 views
Skip to first unread message

Ar

unread,
Nov 16, 2018, 4:14:48 AM11/16/18
to rabbitmq-users
Hi All,
I want to develop an intelligent amqp proxy . I want to provide the intelligence such that, if I have many rabbitmq nodes in a cluster and many exchange in it. When publisher publishes a message with an exchange name, proxy should direct it to specified exchange or node. Routing of the message should be taken care by proxy. Proxy will decide at which node message should route.  Eg. Two rabbitMQ nodes, rabbit1 and rabbit2. All messages, in which exchange name starting with "a"  should be published to rabbit1 and exchange name starting with "b" should be published to rabbit2. 
Can you provide some direction in this regard I am a beginner?

 

Michael Klishin

unread,
Nov 16, 2018, 4:27:16 AM11/16/18
to rabbitm...@googlegroups.com
Why do you believe you need to build such a tool? Any RabbitMQ client can connect and publish to any node
(exchanges are just names for routing tables, replicated across all nodes) [1].

I'm not sure what problem it would solve.


--
You received this message because you are subscribed to the Google Groups "rabbitmq-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rabbitmq-user...@googlegroups.com.
To post to this group, send email to rabbitm...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
MK

Staff Software Engineer, Pivotal/RabbitMQ

Ar

unread,
Nov 16, 2018, 6:21:56 AM11/16/18
to rabbitmq-users
If nodes are not in a cluster but they are distributed.

Carl Hörberg

unread,
Nov 16, 2018, 10:07:32 AM11/16/18
to rabbitmq-users
I would put that logic in the app instead of having an external application.

Rashmi Agarwal

unread,
Nov 17, 2018, 3:33:30 AM11/17/18
to rabbitm...@googlegroups.com
Thanks for the response.
App means publisher of the message or client?
But If I want to have this functionality through proxy, How do i proceed?



--

Karl Nilsson

unread,
Nov 17, 2018, 5:05:29 AM11/17/18
to rabbitm...@googlegroups.com
Roughly the same way. You write a proxy that either tracks or queries the management api for exchanges declared on any of the RabbitMQ nodes and use that information to route your publishes.

There are a bunch of non-trivial problems such as making your proxy highly available, avoiding race conditions and some strategy for routing to exchanges with the same name but on different nodes but it all depends on what you want from your system.

Another option would be to develop an erlang plugin that pushes the exchanges to the proxies when they change.

Cheers
Karl

Karl Nilsson

unread,
Nov 17, 2018, 5:06:26 AM11/17/18
to rabbitm...@googlegroups.com
Correction: develop a RabbitMQ plugin in erlang not “erlang plugin”

Rashmi Agarwal

unread,
Nov 18, 2018, 12:49:22 AM11/18/18
to rabbitm...@googlegroups.com
Thanks a lot for the input.

Reply all
Reply to author
Forward
0 new messages