Готовое решение для оповещения микросервиса - PullRequest
0 голосов
/ 09 сентября 2018

У меня микросервисная архитектура, и теперь мне нужно ввести центр уведомлений.Требования: любая служба может отправлять уведомления, любая служба может подписываться на любые виды уведомлений, пользовательский интерфейс (веб) может подписываться на уведомления (предпочтительны веб-сокеты).Конечно, я могу написать такой сервис самостоятельно, но, может быть, есть готовое надежное решение для этого.

UPD: я не ищу систему обмена сообщениями pub / sub, так как она слишком низкого уровня для центра уведомлений

1 Ответ

0 голосов
/ 09 сентября 2018

Что вам нужно, так это обмен сообщениями между подписчиками. Если вы используете стек AWS, то я могу порекомендовать Amazon SNS или Amazon SQS. Я думаю, что Amazon SNS является более подходящим, потому что его толчок основан.

Amazon SNS позволяет приложениям отправлять критичные по времени сообщения нескольким подписчикам с помощью «push» механизма, устраняя необходимость периодически проверять или «опрашивать» обновления.

Amazon SQS - это служба очереди сообщений, используемая распределенными приложениями для обмена сообщениями по модели опроса, и может быть используется для разделения отправляющих и получающих компонентов - без необходимости каждый компонент должен быть одновременно доступен.

Из стека веб-сервисов Amazon существует множество бесплатных решений для обмена сообщениями:

RabbitMQ является одной из ведущих реализаций протокола AMQP (наряду с Apache Qpid). Поэтому он реализует брокера архитектура означает, что сообщения помещаются в очередь на центральном узле перед отправкой клиентам. Такой подход делает RabbitMQ очень простым использовать и развертывать, потому что сложные сценарии, такие как маршрутизация, загрузка балансировка или постоянные очереди сообщений поддерживаются всего за несколько строки кода. Тем не менее, это также делает его менее масштабируемым и «медленным» потому что центральный узел добавляет задержку и конверты сообщения довольно большой.

ZeroMq - это очень легкая система обмена сообщениями, специально разработанная для сценариев с высокой пропускной способностью и низкой задержкой, подобных той, которую вы можете найти в финансовый мир. Zmq поддерживает множество расширенных сценариев обмена сообщениями но в отличие от RabbitMQ, вам придется реализовать большинство из них самостоятельно, комбинируя различные части каркаса (например, сокеты и устройства).

ActiveMQ находится в середине. Как и Zmq, он может быть развернут как с брокером, так и с топологией P2P Как и RabbitMQ, легче реализовать сложные сценарии, но обычно за счет сырья производительность.

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

...