Pull to refresh

Comments 19

шикарно! спасибо за интересный проект!
если есть результаты перформанс тестов / сравнение по перформансу с другими балансировщиками — не стесняйтесь публиковать ;)
Спасибо за отзыв, но если внимательно глянуть в ссылки после статьи есть те самые тесты производительности:
Сравнивали с Haproxy и Nginx

https://github.com/yyyar/gobetween/wiki/Performance-tests-results
простите, был невнимателен :) спасибо
UFO just landed and posted this here
мы не сможем гарантировать консистентность списка. в единицу времени при нескольких докер эндпоинтах.
если небольшой рассинхрон это ок то можно об этом подумать.
Хотя как по-мне проще и лучше использовать Dokcer Swarm. есть вариант когда на менеджмент ноде сворма прописывается статик лист докер нод.
Тогда на сами докер ноды устанавливать ничего не нужно. А уж менеджмент ноду использовать как эндпоинт для ЛБ.
Прикрутите Raft и будет вам консистентность…
В ходе работы с микросервисами мы неоднократно сталкивались с проблемами сервис дискавери при автоскелинге, схлопывании лишних нод.

А вы пробовали Kubernetes? Там round-robin load balancing + service discovery из коробки.
На кубернейтсе не заканчиваются контейнеры, а уж тем более микросервисы. Тут более общий подход. Посмотрите вики проекта. Там намного больше способов дискавери чем описано в данной статъе.
UFO just landed and posted this here
для того чтоб заменить cube proxy нужно:
1) Поддержка UDP которой пока нет
2) Api которое только начинает имплеменрироваться.

Всему свое время.
UFO just landed and posted this here
Если есть consul и нужен service discovery с планировщиком и гарантией состояний — надо было внедрять nomad.

Нужно понимать что есть CRDT, а есть консенсус на Raft/Paxos…
Вот в случае с Consul'ом для Health Check используется CRDT c Serf'a.
В статье шла речь о том что вам нужен консенсус и планировщик для гарантий синхронизации — надо было использовать Nomad для этого.

В общем эт уже разработано, надо было чуть глубже вникать в стэк HashiCorp.
Kubernetes тоже прокатит — там Raft вроде как.

Советую ознакомится со способами решения задач синхронизации в распределённых средах и как они ложатся на САР теорему.
Было желание сделать простое и гибкое решение с кастомизацией. Оттуда и возник exec, json и plaintext discovery.
Смотрите на это проект как на балансировщик с плюшками, позволяющими решить множество задач быстро и просто.
Там просто когда таких балансировщиков с плюшками десяток запущено и нужно что бы у них одни и те же состояния были — начинаются проблемы, эти проблемы решаются с помощью решения задачи принятия консенсуса, в случае с тем же Nomad/Kubernetes.
Интерестно бы было увидить в тестах traefik.

Пробовали с аффинити/so_reuseport запускать?
а какой смысл сравнивать HTTP балансер с l4 балансером?
Если у меня TCP (в будущем и UDP) сервис базирующийся на протоколе, который к HTTP и HTTPS не имеет никакого отношения, чем мне поможет traefik?
Тесты на одинаковые кейсы сделаем позже, но это разные инструменты с частично пересекающимеся сферами использования.
L4 там вопрос времени исключительно — (https://github.com/containous/traefik/issues/10). Но перф ядра былобы интерестно сравнить.

А что про аффинити/so_reuseport?
Вот когда будет- сравним.
А пока что провел тест на простейшем варианте настройки traefik. Как и следовало ожидать чистый L4 быстрее

traefik Gobetween
Req/Sec 10591 14540
mb/s 8.35 11.9

Хотя неправильно проводить тесты на ЛБ работающих на разных леерах.
Sign up to leave a comment.

Articles