Существуют ли реализации Распределенного Реестра Сервисов, которые используют SQL и/или RabbitMQ?

Как можно реализовать Distributed Service Registry в проекте, используя только NuGet пакеты, SQL Server/PostgreSQL и RabbitMQ, без использования стандартных провайдеров Service Discovery, таких как Json, Consul или Etcd? Существуют ли примеры таких реализаций, основанных на SQL и/или RabbitMQ?
  • 1 августа 2024 г. 12:13
Ответы на вопрос 2
Да, существуют реализации Распределенного Реестра Сервисов, которые используют SQL и/или RabbitMQ. 

Одним из способов реализации Distributed Service Registry с использованием только NuGet пакетов, SQL Server/PostgreSQL и RabbitMQ, без стандартных провайдеров Service Discovery, может быть создание базы данных для хранения информации о зарегистрированных сервисах и использование RabbitMQ для обмена сообщениями между сервисами.

Пример такой реализации может быть следующим:
1. Создание таблицы в базе данных (SQL Server/PostgreSQL) для хранения информации о сервисах (например, название сервиса, IP адрес, порт и т.д.).
2. При запуске каждого сервиса, он должен зарегистрировать себя в базе данных, добавив соответствующие данные о себе.
3. Для обмена информацией между сервисами, можно использовать RabbitMQ, где каждый сервис будет публиковать сообщения о своем состоянии и получать сообщения от других сервисов.
4. При необходимости обновления информации о сервисах, каждый сервис может мониторить изменения в базе данных и обновлять свою локальную копию данных.

Такой подход позволит реализовать Distributed Service Registry используя SQL и RabbitMQ. Однако, стоит учитывать, что данная реализация может быть менее эффективной и не такой масштабируемой, как использование стандартных провайдеров Service Discovery. 

Примеры конкретных реализаций на основе SQL и RabbitMQ могут отличаться в зависимости от конкретных требований и особенностей проекта.
sql-based service registry: 

eureka : может быть настроен для использования sql хранилища
custom solutions : можно создать свою реализацию с sql server или postgresql для хранения информации

rabbitmq:

custom solutions : rabbitmq можно юзать для обмена сообщениями между сервисами, реализуя service discovery

готовых nuget пакетов для этих целей мало
Похожие вопросы