Этот вопрос и, конечно же, ответы будут основаны на мнении, но обычно, думая с точки зрения микро-сервисов, думайте не с точки зрения таких вещей, как множество API, виртуальных машин и т. Д. Вместо этого думайте с точки зрения.Когда я загружаю изображение, его необходимо изменить, а таблицу обновить, чтобы получить URL для большого пальца.или когда запись XXX обновляется в базе данных, запустите XXX, чтобы создать отчет, или обновите поиск Azure.и что каждый сервис просто знает, как сделать только одну вещь.IE изменить размер изображения.
Теперь можно сказать.У меня есть система, библиотека репо и библиотека некоторых функций.Когда изображение публикуется, я загружаю его, затем вызываю, и т. Д.
С помощью услуг Micor.Вместо этого вы просто добавили бы изображение в очередь.Создайте функцию Azure, которая имеет триггер очереди.это позволит изменить размер и сохранить большой и большой палец для хранения.это затем либо обновит базу данных, либо в истинном микросервисе добавит очередь для хранения новой информации, другая функция будет наблюдать эту очередь и вставлять в базу данных.
Вы можете использовать очередь БД изчто-нибудь.Вы можете использовать очередь Blob из чего угодно.Ваш основной API, не важно, как обрабатываются изображения.Вы можете изменить свои функции в один прекрасный день, чтобы сохранить их в Dropbox, вместо Azure BLOB-объектов.Все действительно просто, без перестройки API, потому что API не волнует.
Хороший пример, для которого я его использую - это электронная почта и SMS.Мои системы не знают, как отправить электронное письмо или SMS.Они только знают, как добавить в очередь.Мои микросервисы.SendEmail и SendSMS знают, как это сделать, и я могу очень легко изменить, как и кому я отправляю этот контент.Завтра я могу перейти от Twilio к отправке сетки, даже не сообщая API, что я это сделал.
На более сложную вещь.У меня есть одобрение, в тот момент, когда оно отправляет электронное письмо или SMS пользователю или администратору, и оно может со временем измениться.Итак, у меня есть сервер SMS, служба электронной почты и служба одобрения.когда происходит одобрение, он просто добавляет конфигурацию в очередь. Все остальное выполняет приложение логики, которое знает, как отправить электронное письмо в XXX и SMS в XXX, а затем обновить базу данных.Мой API, просто пост, который создает очередь.
По сути, я говорю здесь, чтобы начать, возможно, портирование существующего приложения.Начните с рабочего процесса, например, отправьте электронное письмо, измените размер изображения, создайте отчет, создайте PDF, отправьте 50 подписчиков по электронной почте и т. Д., Извлеките весь этот код и поместите его в собственный микро-сервис, который просто знает, как сделать что-то одно.Затем, когда вы будете уверенно расти, создайте рабочий процесс из всех этих сервисов с помощью приложений логики, и пусть Azure позаботится обо всем остальном, вот что они хотят.