Do I need to have a channel for each consumer. Is this expected? #755
-
Hi, I worked on a distributed application(s) with 5 services. Some of the messages are just publish and some of them are "request-reply" pattern. I made a single "response" queue for each service that needed to use the "request-reply" and use the correlation ID to notify the method that its response has arrived. This is working fine. However, I found that in order to get it working properly I needed to make a channel for each consumer in the services. I also made a channel for the "responses" and a channel for "publishing". Is this expected or correct? The reason I ask is because when all the consumers were sharing a single channel then message(s) would not delivered under high message rates. The error was reproducible though I haven't tried to make a simple example of it at this point. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
You can have multiple consumers per channel, or even reuse the same We do not guess on this team, so cannot suggest anything without seeing any code. Direct Reply to is implemented using a convention and in-memory channel state, so if that's what you use, using separate channels will be necessary. But that's the only |
Beta Was this translation helpful? Give feedback.
You can have multiple consumers per channel, or even reuse the same
Consumer
object across some or all of them, but it's not going to make it easier to control QoS settings and keep track of acknowledgement. So the benefits of doing so are often questionable.We do not guess on this team, so cannot suggest anything without seeing any code. Direct Reply to is implemented using a convention and in-memory channel state, so if that's what you use, using separate channels will be necessary. But that's the only
feature with this limitation.