Что такое service_cluster и service_node в Envoy RDS REST API?

Я пытаюсь разработать RDS (Route Discovery Service) для использования с lyft/envoy. В соответствии с документацией RDS API URL должен следовать GET /v1/routes/(string: route_config_name)/(string: service_cluster)/(string: service_node), То, что я хочу знать, это использование service_cluster и service_node.

В настоящее время я не использовал их для какой-либо конкретной задачи, только путь GET совпадает, и определяется один маршрут. Который работает просто отлично. Я проверил, какое значение посылает посланник для тех и получил service_cluster: lax & service_node: node1Не так много помощи. Документы говорят, что эти значения также могут быть установлены с помощью параметров CLI.

Для чего это нужно использовать? Я что-то пропустил?

1 ответ

Решение

Мое понимание таково: Envoy разработан, чтобы быть прокси для микросервиса, в сетке микросервисов. Таким образом, вы можете иметь несколько посланников, получающих конфигурацию маршрутов из RDS. Когда вы разрабатываете свою сетку, вы можете решить, как сгруппировать этих нескольких посланников - это контракт между вашей сеткой и вашим RDS. RDS имеет два уровня группировки - по сервисному кластеру и сервисному узлу. Таким образом, вы можете решить, например, вызвать несколько версий одних и тех же микросервисных сервисных узлов сервисного кластера (микросервис с несколькими версиями).

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

Если вы не используете envoy как часть меша, т. Е. Запускаете только одного представителя, вы можете просто игнорировать эти параметры в своей реализации RDS.

Другие вопросы по тегам