Я ищу предложение с точки зрения дизайна.
Я знаю, что 1 микросервис - 1 база данных, это один из основополагающих принципов микросервиса.
Но у меня есть особая проблема:
1) Это проект IoT, в котором данные отправляют огромный объем данных, большую часть времени создает / обновляет / статус устройства.
2) Теперь пользователь отслеживает состояние устройства в пользовательском интерфейсе. а затем.
Конструкция I:
1) Разработан сервис (DeviceSubscribeService) модели подписки от KAFKA (устройство отправляет события в KAFKA). Он продолжает читать данные из KAFKA и вставляет в базу данных (DEVICE). Этот сервис используется только для вставок / обновлений.
2) Разработан еще один сервис (DeviceAPIService) - сервис RESTFul, который извлекает данные из той же базы данных (DEVICE). Этот сервис используется только для запросов к базе данных.
Является ли этот дизайн / подход правильным? Но по принципам микросервиса 1 сервис 1 БД сломан. Есть ли лучший способ сделать это?
Это хороший подход с точки зрения DDD. Я использую одну и ту же модель предметной области как в службах для вставки, так и в базе данных запросов.
Поддержание 2 баз данных для этих двух служб и репликация данных для поддержания их синхронизации, чтобы упростить работу, которую я хотел бы избежать. сложный процесс. Поверь мне, сейчас у меня все отлично.
Но я не слишком убежден с точки зрения дизайна. Я нарушаю какой-либо принцип.
Пожалуйста, предложите.