Grpc балансировка нагрузки с трафиком не работает - PullRequest
0 голосов
/ 13 июня 2018

Я надеюсь использовать traefik в качестве баланса нагрузки grpc.Вот конфигурация файла traefik.toml.

logLevel = "INFO"
[entryPoints]
[entryPoints.http]
   address = ":2525"

[file]
   [backends]
      [backends.backend1]
         [backends.backend1.servers.server1]
            url = "http://localhost:6565"
            weight = 10

   [frontends]
      [frontends.frontend1]
      backend = "backend1"
         [frontends.frontend1.headers]
            # SSLRedirect = true
         [frontends.frontend1.routes.Route1]
            rule = "Host:localhost"

Мой хост сервера grpc - localhost, а порт - 6565.Grpc клиент отправляет запрос grpc на localhost:6565 (сервер) будет работать нормально.Но когда я настраиваю traefik для прослушивания порта 2525 и запускается traefik.Изменение клиентского порта grpc на 2525 не является балансировкой нагрузки, как я запрашиваю.

Но запрос grpc (http2) обнаруживается traefik согласно журналу доступа.

127.0.0.1 - - [13/Jun/2018:05:23:16 +0000] "PRI * HTTP/2.0" 404 19 "-" "-" 1 "backend not found" "*" 0ms
127.0.0.1 - - [13/Jun/2018:05:23:16 +0000] "PRI * HTTP/2.0" 404 19 "-" "-" 2 "backend not found" "*" 0ms

Там написано backend not found.Трудно понять, почему это произошло.Я пошел через Интернет для лучшего решения.Некоторые люди говорят, что использовать https с этим.Но когда NGINX используется, нам не нужно использовать https.Поэтому мне нужно такое решение.Может кто-нибудь дать мне лучшее решение?

1 Ответ

0 голосов
/ 21 июня 2018

В соответствии с официальным выпуском и этим документом .

Сначала нам нужно изменить внутренний протокол с http на h2c, то естьhttp2 без s.

Во-вторых, traefik не будет поддерживать h2c backend до v1.7, поэтому текущий выпуск не будет работать.Как говорится в официальном репо, они выпускаются раз в два месяца, и текущая версия - v1.6.4, поэтому мы можем использовать эту функцию в следующем месяце.

Однако, если вы хотите иметь эту возможность прямо сейчас (как и я)Мы можем создать версию traefik для разработчиков из исходного кода.Смотрите этот документ , просто клонируйте репо и соберите.

...