Answer the question
In order to leave comments, you need to log in
What queues are needed in RabbitMQ for these tasks?
C RabbitMQ did not work, so I ask, maybe a stupid question.
The scheme is as follows:
There is a frontend in PHP, which is purely "business".
There is an ODATA service (in JAVA), which is a single interface for working with various databases and caches. Basically "logic". When changing, entering or deleting data, the service generates a message that should come to one or more consumers. Basically a trigger.
There is a backend in JAVA, which has many different consumers. Each consumer does certain things, such as: one generates PDFs, another calculates billing, a third sends mail, a fourth uploads files to the cloud, and so on.
The tasks are:
1. All messages must be processed and ACK sent.
2. All messages must be DURABLE.
3. When sending a message to two or more consumers, an ACK should be received from all of them. (here I don’t understand how it works or how to implement it correctly)
1. Do I understand correctly that it is logical to define a queue for each consumer, for example:
billing
mailing
cloud
pdf
, etc.
?
2. Is it more convenient to send messages through templates? What is the best way to name them?
3. Should the exchanger be of the topic type?
Answer the question
In order to leave comments, you need to log in
0. The same message cannot be delivered to two consumers at the same time. These may be messages with the same content, but for the system they will be different messages.
1. Yes, this is logical. A separate queue for a separate task will allow you to change the number of handlers depending on the load for each task separately.
2. I didn't understand here. Do you mean routing_key ?
3. There are 3 built-in exchanger types. It is better to choose the one that is more suitable for the task, but keep in mind that they have different bandwidth (here, I found an article - https://habrahabr.ru/company/oleg-bunin/blog/310418/)
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question