Балансировка нагрузки gRP C запросов с использованием одного из AWS Балансировщиков нагрузки - PullRequest
5 голосов
/ 11 февраля 2020

Я пытаюсь понять, могу ли я использовать один из (A / E / N) LB для баланса нагрузки gRP C traffi c. В нашем случае было бы достаточно простого циклического перебора.

Я читал, что ALB не полностью поддерживает HTTP2 и поэтому не может использоваться с gRP C. В частности, упоминалось отсутствие поддержки отправки трафика HTTP2 c в нисходящем направлении и отсутствие поддержки заголовков трейлеров. Это все еще верно?

Не удалось найти каких-либо окончательных ответов относительно NLB или ELB "classi c". Есть намеки?

1 Ответ

1 голос
/ 15 февраля 2020

Использование gRP C на AWS сопряжено с рядом серьезных проблем. Без полной поддержки HTTP / 2 в AWS Application Load Balancer вам придется раскрутить и управлять своими собственными балансировщиками нагрузки. Ни NLB, ни ELB не являются жизнеспособными альтернативами на AWS из-за проблем с трафиком c на один и тот же хост, динамического сопоставления портов c, усложнения завершения SSL и неоптимального циклического перебора клиентов и серверов Соединения TCP.

gRP C продемонстрировали улучшения производительности, однако потребовались бы значительные усилия для инфраструктуры, чтобы принять, будь то использование LB, таких как Nginx или Envoy; или настраивая сервис me sh с чем-то вроде Istio. Другой возможностью было бы использование толстой балансировки нагрузки клиента, хотя для этого также потребовались бы дополнительные инфраструктуры обнаружения служб, такие как Consul или ZooKeeper.

AWS недавно анонсировал новую услугу под названием AWS App Me sh. AWS App Me sh поддерживает службы HTTP2 и gRP C

gRP C теперь может моделировать и управлять своими межсервисными коммуникациями с использованием AWS App Me sh.

Ссылка:

enter image description here

...