Объясните разницу между удаленным вызовом RPC и очередью сообщений MQ.

Java

что такое РПЦ

RPC (удаленный вызов процедур) — это удаленный вызов процедур, который в основном решает проблему удаленной связи и не требует понимания механизма связи базовой сети.

Что такое сервисные платформы RPC

Наиболее известные из них — Thrift (FB), dubbo (Ali).

file

RPC обычно должен пройти 4 шага:

1. Установите связь

Прежде всего, должна быть решена проблема коммуникации: то есть, если машина А хочет вызвать машину Б, она должна сначала установить коммуникационное соединение, главным образом путем установления TCP-соединения между клиентом и сервером.

2. Сервисная адресация

Чтобы решить проблему адресации, как на сервере A подключиться к серверу B (например, хосту или IP-адресу) и конкретному порту, как называется метод.

3. Передача по сети

1) Сериализация

Когда приложение на сервере A инициирует вызов RPC, вызывающий метод и данные параметров должны быть сначала сериализованы.

2) Десериализация

Когда сервер B получает запрос от сервера A, ему необходимо десериализовать полученные параметры и другую информацию.

4. Сервисный вызов

После того, как сервер B сделает локальный вызов (через прокси-сервер), будет получено возвращаемое значение.В это время возвращаемое значение необходимо отправить обратно на сервер A. Его также необходимо сериализовать, а затем двоичные данные отправляется обратно на сервер A через передачу по сети.

Обычно для полного вызова PRC необходимо пройти 4 вышеуказанных шага.

MQ (очередь сообщений)

Очередь сообщений (MQ) — это коммуникационная модель, которая может реализовать одностороннюю связь между производителями и потребителями, вообще говоря, относится к промежуточному программному обеспечению, которое реализует эту модель.

file

Типичные особенности:

1. Развязка

2. Надежная доставка

3. Трансляция

4. Конечная согласованность

5. Отсечение пиков трафика

6. Гарантия доставки сообщения

7. Асинхронная связь (поддержка синхронизации)

8. Улучшить пропускную способность и надежность системы

Типичные сценарии использования: MQ используется для снижения пикового трафика и разделения приложений в бизнесе seckill.

Разница и связь между RPC и MQ

1. С точки зрения архитектуры разница между RPC и MQ заключается в том, что Message имеет промежуточный узел, Message Queue, который может хранить сообщения.

file

2. Синхронный вызов: RPC лучше всего подходит для сценариев, в которых требуется дождаться немедленного возврата результата обработки.

3. Использование MQ основано на соображениях производительности, например, сервер не может быстро ответить клиенту (или клиенту не требуется ответ в реальном времени), поэтому его необходимо кэшировать в очереди.

С другой стороны, он больше ориентирован на передачу данных, поэтому методы более разнообразны.Помимо двухточечного, он также имеет такие функции, как подписка и публикация.

4. С ростом бизнеса пропускная способность некоторых обрабатывающих терминалов станет узким местом, и синхронные вызовы будут преобразованы в асинхронные вызовы.В настоящее время можно рассмотреть MQ.

Эта статья опубликована в блогеOpenWriteвыпуск!