Я реализую архитектуру микросервиса, управляемую событиями. Представьте себе следующий сценарий:Обмен данными с микросервисами
- чата обслуживание: Возможность видеть разговоры и отправку сообщений. В беседах может быть несколько участников.
- Служба регистрации и регистрации: Предложения по регистрации новых пользователей и логин.
- Служба пользователя: Получение/обновление профилей пользователей.
регистрации, Войти служба выдает следующее событие с вновь созданного объекта пользователя: registration-new
login-success
logout-success
Служба чата затем прослушивает registration-new
и хранит несколько полей пользователя в своем кэше REDIS , Он также прослушивает на login-success
и сохраняет токен, а на logout-success
удаляет токен.
Служба пользователей имеет следующее событие: user-updated
. Когда это увольняется, слушатель в службе чата обновляет данные, соответствующие идентификатору пользователя, в redis. Как и чат-сервис, служба пользователя также прослушивает login-success
и logout-success
и делает то же самое, что и в чате.
Мой вопрос заключается в следующем: это хороший способ сделать это? Чувствовать себя немного неразумным, чтобы делиться данными повсюду. Мне нужен совет. Спасибо!
Когда вы говорите: «Это кажется немного противоречивым, чтобы быть ОБЩИНЫ данными повсюду». Вы имеете в виду «дублирование» или «распространение»? Потому что «совместное использование» обычно означает наличие общего репозитория, доступного каждому. –