Как создать высокопроизводительное сервисное обнаружение с помощью etcd? - PullRequest
0 голосов
/ 19 марта 2019

Здесь я рисую процесс обнаружения службы. введите описание изображения здесь

В этом процессе: 1. Клиент подключает сервис через HaProxy или LVS.2. HaProxy или LVS передают запрос клиента на прокси-узел.3. Прокси-узел использует etcd для запроса адреса службы.4. etcd вернуть адрес службы.5. Прокси-сервер перенаправляет сервисный вызов на правильный узел.

Фактически, узким местом пропускной способности является шаг 1.2 с шагом 1.3 и шаг 2.2 с шагом 2.3 на рисунке процесса.

Поскольку запросот etcd - не быстрое действие, производительность кластера etcd (на основе плота) даже меньше, чем у одного узла.

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

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

...