Не буду оригинален в своём комментарии: за десять минут полностью и по полкам рассказано почему и как именно работает патрони\етцд\хапрокси в связке Прочитал кучу статей, посмотрел столько же видосов. Ну типа понятно что работает, понятно как настраивать. Но почему именно так, зачем вся эта схема, как она общается между собой и принимает решение - не понятно. А тут прям всё по полочкам разложено без лишней воды, но настолько элементарно, что хочется сказать большое спасибо!
Я рад что у меня получилось. Ролики снимались именно по методике "понимания". Когда я изучаю новый материал, для меня основной целью является построение некой модели в голове, что помогает достичь именно понимания системы. На английском есть нное количество роликов именно "understanding ...", к сожалению рускоязычных ресурсов я не нашел. Поэтому и решил сделать что то свое.
Спасибо. Цели развивать канал у меня нет. Я просто хочу делится знаниями. Я сам в свое время очень много взял из интернета, пришло время отдавать. Иначе интернет перестанет быть полезным.
@bigtown2012, Спасибо за довольно понятное изложение информации в видео! Один вопрос по patroni: если теряется связь между нодами postgresql, и при этом каждый экземпляр patroni видит по два доступных etcd (свой и центральный (третий который). Каким в данном случае образом устанавливается кто мастер кто реплика? Как ведёт себя схема в данном случае?
Опущены и не озвучены в явном виде некоторые важные вещи. Возникают вопросы: 1. Как именно Patrroni общается с ETCd ? Может в Patroni есть опция dcs_plugin где указывается 'Etc_plugin' и тогда Patroni понимает, что надо общаться с Etcd . А может наоборот это в ETCd есть опция 'Patroni_host' где указывается ссылка на Patroni ? 2. Верно ли я понимаю, что ETCd имеет RAFT и именно ETCd узел выбирается в качестве лидера, а Patroni потом просто спрашивает у Etcd "Я лидер или нет?" и если да, то настраивает себя лидером?
Что-то не понял. Запускаем pgbench на удаленной машине с haproxy и сравниваем результат с локальным запуском на мастер ноде. Ясно же, что сам факт промежуточного звена в виде локальной сети внесет задержку. Надо было сделать тест без haproxy, но тоже с удаленной машины. А так этот тест не показатель ни разу
Спасибо за ролики, полезная информация. Подскажите только, пожалуйста, не совсем понятен механизм кворума. Отваливается один экземпляр etcd. У одного экземпляра Patroni есть связь в одним etcd, у другого экземпляра Patroni есть связь с двумя etcd. Как они понимают, что у одного больше, чем у другого?
Ну почитайте о реализации кворума. Там есть параметры такие как: сколько нужно ждать участников для старта. Сколько достаточно для кворума. В двух словах так. Кластер стартует и ждет всех участников кворума. После этого он считается запущеным. А раз известно общее количество, то несложно потом вычислить кто в большинстве. Общая формула не менее или равно 50%+1
Хоть 5 инстансов используйте. Если бы не было Patroni, вам никто не переключит роль со слейва на мастер, только "руками". А со слейвом вы не сможете полноценно работать, так как он Read Only (если речь идет о "физической" репликации).
Не буду оригинален в своём комментарии: за десять минут полностью и по полкам рассказано почему и как именно работает патрони\етцд\хапрокси в связке
Прочитал кучу статей, посмотрел столько же видосов. Ну типа понятно что работает, понятно как настраивать. Но почему именно так, зачем вся эта схема, как она общается между собой и принимает решение - не понятно. А тут прям всё по полочкам разложено без лишней воды, но настолько элементарно, что хочется сказать большое спасибо!
Спасибо. Давно не хватало мне такого видео, где коротко, сжато и по сути объяснено как что работает. Буду знать.
Спасибо тебе за ролики по данной тематике. Большинство вещей удалось упорядочить в голове, после просмотра этого плейлиста. 🙏
Я рад что у меня получилось. Ролики снимались именно по методике "понимания". Когда я изучаю новый материал, для меня основной целью является построение некой модели в голове, что помогает достичь именно понимания системы. На английском есть нное количество роликов именно "understanding ...", к сожалению рускоязычных ресурсов я не нашел. Поэтому и решил сделать что то свое.
Можно использовать связку Haproxy + Keepalived на двух хостах в разных зонах доступности, если есть возможность растянуть общую сетку между ними
Наконец-то я вкурил как работает этот patroni в связке с etcd и haproxy. Спасибо!
Посмотрел с удовольствием. Объяснение без лишней информации и воды.
Сразу чувствуется практика и опыт. Давай чего-нибудь еще :)
Классно всё разложено, очень грамотно рассказал, спасибо большое.
Очень наглядное объяснение. 👍А то обычно сразу всё в кучу смешают и не поймешь, что для чего именно нужно.
Спасибо, достаточно понятные схемы и язык.
Спасибо большое! Отличное объяснение.
Воронам на фоне привет =))
лучшее видео
Очень хорошая подача, удачи в развитии канала!
Спасибо. Цели развивать канал у меня нет. Я просто хочу делится знаниями. Я сам в свое время очень много взял из интернета, пришло время отдавать. Иначе интернет перестанет быть полезным.
Большое спасибо, очень полезный и хороший ролик
Спасибо, очень доступно для понимания
Спасибо, чел!
@bigtown2012, Спасибо за довольно понятное изложение информации в видео! Один вопрос по patroni: если теряется связь между нодами postgresql, и при этом каждый экземпляр patroni видит по два доступных etcd (свой и центральный (третий который). Каким в данном случае образом устанавливается кто мастер кто реплика? Как ведёт себя схема в данном случае?
Опущены и не озвучены в явном виде некоторые важные вещи. Возникают вопросы:
1. Как именно Patrroni общается с ETCd ? Может в Patroni есть опция dcs_plugin где указывается 'Etc_plugin' и тогда Patroni понимает, что надо общаться с Etcd . А может наоборот это в ETCd есть опция 'Patroni_host' где указывается ссылка на Patroni ?
2. Верно ли я понимаю, что ETCd имеет RAFT и именно ETCd узел выбирается в качестве лидера, а Patroni потом просто спрашивает у Etcd "Я лидер или нет?" и если да, то настраивает себя лидером?
Что-то не понял. Запускаем pgbench на удаленной машине с haproxy и сравниваем результат с локальным запуском на мастер ноде. Ясно же, что сам факт промежуточного звена в виде локальной сети внесет задержку. Надо было сделать тест без haproxy, но тоже с удаленной машины. А так этот тест не показатель ни разу
Пересмотрите внимательнее.
@@bigtown2012, пересмотрел) подскажите что не так?
Я этот момент тоже не понял, что с чем сравнивали?
Я верно понял что по 15432 всегда будет доступен мастер, и по 25432 всегда будет реплика?
Спасибо за ролики, полезная информация. Подскажите только, пожалуйста, не совсем понятен механизм кворума. Отваливается один экземпляр etcd. У одного экземпляра Patroni есть связь в одним etcd, у другого экземпляра Patroni есть связь с двумя etcd. Как они понимают, что у одного больше, чем у другого?
Ну почитайте о реализации кворума. Там есть параметры такие как: сколько нужно ждать участников для старта. Сколько достаточно для кворума. В двух словах так. Кластер стартует и ждет всех участников кворума. После этого он считается запущеным. А раз известно общее количество, то несложно потом вычислить кто в большинстве. Общая формула не менее или равно 50%+1
@@bigtown2012 Понял, спасибо.
Круто!
Что можете сказать об pgpool 2?
Thanks
Так реплика или кластер из коробки? )
перманентный, а не персистентный
Ничего не понял, а чего бы не использовать ещё один инстанс pgsql? Какие-то лишние абстракции и костыли. Да и выбирать нечего, есть же virtual IP.
Хоть 5 инстансов используйте. Если бы не было Patroni, вам никто не переключит роль со слейва на мастер, только "руками". А со слейвом вы не сможете полноценно работать, так как он Read Only (если речь идет о "физической" репликации).