Привет, я действительно новичок в RabbitMQ. Я хочу реализовать шаблон RPC, но с несколькими клиентами и одним сервером. Может ли кто-нибудь рекомендовать ответный способ реализации этого. Меня немного беспокоит код, который я реализую одним клиентом, и один сервер вводит проблемы с блокировкой, в идеале я бы хотел, чтобы клиент получил ответ довольно быстро. Любые рекомендации или подходы приветствуются. Приветствия.RabbitMQ RPC несколько отправителей один приемник
ответ
Прежде всего, чтобы получить терминологию прямо:
- в RMQ контексте RMQ является брокером (сервер), чьи клиенты являются производителями и потребителями.
- в контексте RPC (и в примере на the tutorial) у нас есть клиент (ы) RPC и RPC-сервер (ы). Поэтому, когда мы «сопоставляем» это с контекстом RMQ, мы говорим, что клиент RPC на самом деле является как производителем RMQ, так и потребителем RMQ (поскольку он отправляет запрос и получает ответ), и что RPC-сервер является как потребителем RMQ, так и производителем RMQ (потому что он ждет для запросов и затем отправляет ответ)
Теперь, если вы реализуете его так же, как это делается в учебнике (вышеупомянутая ссылка), у вас не будет никаких проблем. Вы должны просто запустить больше серверов RPC, чтобы больше запросов обрабатывалось параллельно.
ОК, чтобы ответить на вопрос Алексий. Деловая проблема заключается в том, что у нас есть веб-сайт, который должен общаться с довольно старым программным обеспечением бухгалтерского учета, API которого больше ориентирован на настольные приложения, имеющие длительные соединения по сети. Поставщик не поддерживает и намекает на проблемы с потоками в нашем сценарии. Поэтому наш следующий подход заключается в том, чтобы веб-приложение отправляло сообщения в RabbitMQ и постоянно подключалось консольное приложение к учетному приложению, которое слушает очередь, и если процесс не слишком длинный, можно уведомить пользователя веб-приложения о том, что транзакция была обработана/поставлена в очередь – user1102550
Итак, чтобы вернуться к cantSleep из учебника (я использовал другой). С точки зрения производительности/разумной архитектуры. Это нормально, если клиент RPC создает временную очередь для веб-приложения для каждого вызова и перенаправляет его обратно. Я не на своем компьютере в данный момент, поэтому я не могу запустить этот учебник. Но, глядя на него, он создает одну очередь. Просто немного беспокоило, что одна очередь может создать узкое место. Я видел несколько примеров, которые создают временную очередь, которая длится всю транзакцию. Это более масштабируемое направление. – user1102550
- 1. RabbitMQ RPC через несколько экземпляров rabbitMQ
- 2. несколько отправителей, несколько приемников
- 3. RabbitMQ RPC учебник запрос
- 4. JavaMail - несколько отправителей
- 5. RabbitMQ - приемник получает только 14 сообщений за один раз
- 6. RabbitMQ Rpc: EventingBasicConsumer или QueueingBasicConsumer
- 7. Несколько форм и один PHP-приемник
- 8. Укажите несколько отправителей в Swift?
- 9. RabbitMQ: несколько сообщений и один потребитель
- 10. Как создать масштабируемый приемник вызова rpc?
- 11. RabbitMQ длительная очередь не работает (RPC-сервер, RPC-клиент)
- 12. Как реализовать RPC с RabbitMQ в Rails?
- 13. Как перенаправить сообщения в приемник RabbitMQ?
- 14. RabbitMQ RPC: Эксклюзивные очереди запирающих @ PHP
- 15. rabbitmq (pika) выдает исключение при использовании RPC
- 16. Может ли сообщение иметь несколько отправителей?
- 17. Исключить несколько отправителей в gmail-фильтрах
- 18. RabbitMQ - Потребляйте несколько очередей
- 19. RabbitMQ несколько каналов
- 20. rabbitmq несколько потребителей в очереди - только один получает сообщение
- 21. Rabbitmq извлекает несколько сообщений, используя один синхронный вызов
- 22. широковещательный приемник wifi несколько намерений
- 23. MassTransit RPC (RabbitMQ) тайм-аут с несколькими клиентами
- 24. EventMachine EM :: Итератор заблокирован с помощью rabbitmq RPC
- 25. Node.js RabbitMQ сообщения теряются, если приемник не работает
- 26. Регистрация на тот же приемник Несколько раз
- 27. Можно ли настроить несколько/разные очереди CallBack для RabbitMQ RPC C#?
- 28. RabbitMQ RPC закрывает очередь ответов на окончательное сообщение
- 29. Как реализовать RPC-механизм с использованием RabbitMQ в java
- 30. Невозможно использовать RabbitMQ RPC с распределенными службами ServiceStack.
Могу ли я спросить, какую деловую проблему вам нужно решить? –