Следует ли использовать микроуслуги или сопоставленные объекты для обмена данными между несколькими приложениями? - PullRequest
1 голос
/ 09 апреля 2019

У меня есть кенарий с несколькими приложениями, каждое из которых заботится о своих данных. Но поскольку бизнес связан, нам нужен доступ к данным приложений друг друга.

У нас в основном есть стратегия зависимости от базы данных, совместное использование сущностей с одними приложениями или отображение представлений в других. Создан ад зависимостей!

  1. Как микросервисы могут помочь нам в таком кенарио?

  2. Каким образом доступ к нескольким URL-адресам является лучшей стратегией, чем использование соединений базы данных? (ex EntityA имеет зависимость сопоставления с EntityB. Если я использую стратегию микросервиса, мне придется вызывать / apirest / resourceA и / apirest / restourceA / resourceB, верно? Как это было бы лучше / быстрее, чем иметь выбор * из entityA внутреннее объединение сущностей B?)

  3. Как я могу отделить данные между всеми приложениями (например, 10 приложений, которые в какой-то момент имеют доступ к одним и тем же данным)?

  4. Есть ли какие-либо материалы / статьи / технологические указания?

1 Ответ

0 голосов
/ 09 апреля 2019
  1. Микросервисы определяют четкую границу.Они не будут чудесным образом все ускорять.
  2. Присоединения к базе данных также являются жизнеспособными решениями.Если у вас очень сильная связь между вашими данными, микроуслуги могут быть неправильным вариантом.Микросервисы позволяют вашим различным службам использовать технологию, независимую от остальных.Допустим, у вас есть сервисы A и B. Вы можете использовать реляционную базу данных в сервисе A для данных, которые сильно связаны и нуждаются в транзакционной безопасности, и графическую базу данных в сервисе B для управления реляционными данными.Службы A и B не заботятся о том, что использует другая сторона, поскольку они скрыты за границей службы.
  3. Если вы можете разделить ваши данные на домены с минимальным взаимодействием, эти доменные границы являются хорошей отправной точкой для ваших услуг,Сервисы в конечном итоге должны будут ссылаться на объекты другого сервиса.Два возможных варианта - либо всегда вызывать другой сервис, либо сохранять минимальную локальную копию удаленных данных (например, только первичный ключ удаленного объекта).Локальная копия должна быть в курсе данных (с событиями?).На данный момент мы боремся именно с этим ...
  4. Если вы пользуетесь микросервисами Google, вы утонете в информации.Мне нравится https://martinfowler.com/articles/microservices.html в качестве отправной точки.

Я уверен, что я не затронул все аспекты микросервисов здесь, это просто короткий намек в направлении, чтобы начатьпутешествие ...

...