Масштабирование базы данных в микросервисной архитектуре - PullRequest
0 голосов
/ 15 февраля 2019

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

1.1-мкСм;1 экземпляр;1 экземпляр БД

Не масштабировать по горизонтали, а только по вертикали.

2.1-мкСм;N экземпляров;1 экземпляр БД

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

3.1-мкСм;N экземпляров;Кластер БД HA

Каждый экземпляр службы получает возможность чтения и записи в одну и ту же базу данных HA.Хороший способ масштабирования, если чтение / запись базы данных также является узким местом.Большая стоимость эксплуатации.

4.N-мкСм;N экземпляров;Кластер БД HA

Каждый экземпляр каждой службы получает возможность чтения и записи в один и тот же кластер базы данных HA.Каждый сервис использует свою собственную базу данных в кластере HA DB.

5.Другое

Существуют ли другие способы масштабирования базы данных вместе с сервисом, которому она требуется?


С каждым решением есть свои компромиссы, будь то производительность чтения или записи, стоимость операции и т. д., но какое было бы рекомендовано решение для масштабирования базы данных:

  • при условии, что сервис и база данных равны так, чтобы при масштабировании сервиса требовалось масштабирование базы данных?
  • суслуга, требующая большего времени обработки, а это означает, что служба должна масштабироваться, а не база данных?
  • с базой данных, требующей больше времени обработки, чем служба?

Мое мнение таково, что если услугаhigh on пишет, тогда 3 или 4 - это решение, а для остальных 4 - решение.

...