Архитектура, управляемая событиями, - это концепция системного проектирования, в которой мы используем методы для достижения синхронной или асинхронной связи в нашей системе. Скорее всего, нам нужна асинхронная связь.
Такими методами могут быть pub / sub, длинный опрос, организация очереди, веб-сокеты и т. Д.
Микросервис - это подход к проектированию нашей системы, при котором мы делаем наши сервисы развязанными друг с другом или, по крайней мере, стараемся сделать все, что в наших силах. Например, служба новостей Facebook не зависит от других служб, таких как профиль, фотографии и обмен сообщениями. Одним из преимуществ этого является разделение проблем, поэтому, например, если лента новостей перестает работать, мы все равно можем продолжать загружать фотографии и болтать с нашими друзьями. Если бы FB был монолитным, отключение одной службы могло бы привести к отключению всего сайта. Еще одно преимущество микросервиса - возможность развертывания: чем меньше размер сервиса, тем быстрее тестировать и развертывать.
Возьмем, к примеру, пиццу, решив, разрезать ли ее на квадраты или треугольники, или насколько большими / маленькими будут кусочки, - это микросервисы. Какой из них съесть первым, а какой следующий, - это мышление, основанное на событиях. Вы предпочитаете большие ломтики, смешанные, маленькие или более мясные? Точно так же, как наши системы могут разумно решать, какие события запускать дальше.
Просто помните, что это концепции, которые помогут вам понять существующую систему или помочь вам решить, как вы будете строить свою систему. В реальном мире, когда вы переходите в новую компанию, вы будете задавать такие вопросы, как
- Насколько сервис-ориентирована система?
- Насколько насыщен поток данных?
Краткий ответ на ваш вопрос ... они не обязательно связаны, но мы неизбежно реализуем их вместе при масштабировании одного или другого.
Например, учитывая эту микросервисную архитектуру
[checkout service] ---> [email service]
Допустим, пользователь очень долго ждет завершения проверки и отправки электронного письма. 90% ожидания исходит от почтовой службы. На самом деле пользователь должен иметь возможность продолжать просматривать другие страницы, пока они ждут письма.
В этом примере мы решили проблему долгого ожидания, добавив Queue
[checkout service] ---> [Queue] ---> [email service]
Мы улучшили взаимодействие с пользователем, сделав наш микросервис более насыщенным. Когда пользователь нажимает кнопку оформления заказа, немедленно возвращается ответ, позволяющий пользователю продолжить просмотр, пока событие электронной почты отправляется в очередь.
person
edmamerto
schedule
03.07.2020