Какова концепция Ambassador в распределенных системах?

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

В последнее время я изучаю докер и докер-рой, и я неоднократно видел, как этот термин упоминается в статьях или репозиториях. Например, в этот замечательный проект есть репозиторий с именем docker-ambassador. Или другой проект под названием ctlc-docker-ambassador.


person Rogério Peixoto    schedule 27.06.2016    source источник
comment
stackoverflow.com/questions/26604734/   -  person tom redfern    schedule 27.06.2016


Ответы (1)


Одним из основных преимуществ микросервисов в целом является возможность переключать базовые компоненты без уведомления остальной части приложения/экосистемы об изменении. Шаблон посла позволяет элементам перемещаться и изменяться, в то время как потребляемый код продолжает подключаться к одному местоположению. В одной из предоставленных вами ссылок было отличное объяснение/пример:

Вместо того, чтобы жестко кодировать сетевые связи между потребителем и поставщиком услуг, Docker поощряет переносимость услуг, например, вместо:

(потребитель) --> (redis) Требуя перезапустить потребителя, чтобы подключить его к другой службе Redis, вы можете добавить послов:

(потребитель) --> (redis-посол) --> (redis) или

(consumer) --> (redis-ambassador) ---network---> (redis-ambassador) --> (redis) Когда вам нужно перенастроить потребителя для связи с другим сервером Redis, вы можете просто перезапустить контейнер redis-ambassador, к которому подключен потребитель.

В этом случае базовый компонент (redis) может быть перемещен или обновлен без ведома кода, использующего redis. Это даже позволило бы переключиться с redis на другой магазин kv, если бы код был немного умнее.

person Nick Warlen    schedule 29.06.2016
comment
Но что вам мешает хардкодить сопоставление портов в redis-ambassador? Я имею в виду, разве это не просто перенос проблемы на другой узел в вашей распределенной архитектуре? - person Rogério Peixoto; 29.06.2016
comment
Наряду с простым знанием того, где находится базовая служба, посол-узел может быть умным, под которым я подразумеваю, что он может направлять трафик на основе входящих запросов. Скажем, у вас было несколько узлов Redis, используемых для разных целей (кеш, метаданные и т. д.). Все клиенты-потребители могли общаться с одним представителем, который умел разумно управлять запросами и направлять трафик в надлежащее конечное место назначения. По сути, в этот момент он становится интеллектуальным балансировщиком нагрузки. Опять же, не единственное применение сложного и гибкого инструмента. - person Nick Warlen; 06.07.2016