powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Совет по высокой доступности
25 сообщений из 27, страница 1 из 2
Совет по высокой доступности
    #39442365
NewBie77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья стоит задача если с одной базой что-нибудь случится , чтоб можно было переключится на другую. Информация должна быть обязательно синхронная.
Можно сделать кластер с такой схемой где одна база будет активная ,а вторая пассивная + потоковая репликация с отдельным хранилищем для репортов:


Также думал сделать потоковою синхронную реплику Master -> Slave -> Slave (резервной чтоб при сбое первого слеива мастер не тупил) ,но сказали что хранилище стоит дорого и можем на данный момент купить только два.

Посмотрел в сторону Pgpool-II с такой схемой :


прочитал что если рухнет один сервер то второй обычно продолжает работать,насколько надежна такая схема ?
И какую бы вы посоветовали для данной задачи? (не обязательно из тех которые я написал,с удовольствием услышу ваши варианты)

Нагрузка на базу будет не большая в ближайшие 5 лет пик будет 600-700 транзакций в секунду.
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442371
hydrobiont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewBie77,

Требование синхронности как правило находится в противофазе с требованием высокой доступности.
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442375
NewBie77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hydrobiontNewBie77,

Требование синхронности как правило находится в противофазе с требованием высокой доступности.

Устроит синхронность только на 3-4 таблицы (т.к платежные системы важня каждая транзакция) , приемлемо если будет 5-10 минут система отключена при переключении на другую базу. Нам важно не потерять транзакцию при переключении.
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442379
hydrobiont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewBie77,

Ну тогда просто синхронная реплика. Не комитится транзакция на мастере - идем смотреть что со слэйвом, 5-10 минут вполне достижимы
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442382
NewBie77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hydrobiont,

Я имел ввиду 5-10 минут если мастер рухнет, а если транзакция зависнет на 5-10 минут это очень очень плохо . Интересно если вы использовали pgPool насколько он стабилень ?
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442387
hydrobiont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewBie77Я имел ввиду 5-10 минут если мастер рухнет, а если транзакция зависнет на 5-10 минут это очень очень плохо .

Если для транзакции нужна такая степень durability, что необходима синхронная реплика, то при отсутствии возможности закомитится в такую реплику она будет ждать и тут уж вопрос как вы обработаете такую ситуацию. Подход срубить ее по таймауту а потом фейловерится или отцеплять слэйв не такой уж дурацкий, если приложение грамотно умеет обработать аборт. Опять же можно не для всех транзакций держать синхронную репликацию, а разделить по сессиям, пулам пгбаунсера и тп (см synchronous_commit = local ).

NewBie77Интересно если вы использовали pgPool насколько он стабилень ?

Используем, куда же деваться, но стараемся выпиливать если база на нашей поддержке - его проблемы by design перечислять можно очень долго.
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442390
NewBie77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hydrobiont,

Какую схему бы вы посоветовали для данной задачи ? Как бы вы решили ?
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442396
hydrobiont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewBie77,

Для начала просто реплика мастер-слэйв, возможно синхронная. На каждой машине с базой по pgbouncer, куда ходить определяет приложение. Скрипт прибивает на мастере транзакции аномальной длительности (длительность подбирется)
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442400
NewBie77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hydrobiontNewBie77,

Для начала просто реплика мастер-слэйв, возможно синхронная. На каждой машине с базой по pgbouncer, куда ходить определяет приложение. Скрипт прибивает на мастере транзакции аномальной длительности (длительность подбирется)

Если он найдет транзакцию аномальной длительности как поступать ? Мне нужно их как-то закомитить.
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442410
hydrobiont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot NewBie77]hydrobiontNewBie77,
Если он найдет транзакцию аномальной длительности как поступать ? Мне нужно их как-то закомитить.

Если у вас упал мастер, то транзакцию закомитить можно только при помощи спиритического сеанса и черной магии - чем она закончилась неизвестно и приложение может обработать ситуацию только как исключение - транзакция не прошла.

Если вы хотите защитится от ситуации, когда на мастере закомитили, приложение об этом узнало, на реплику транзакция еще не успела попасть и вот тут мастер падает и транзакция теряется, то для этого существует синхронная реплика - камит просто не вернет управление пока не доедет до слэйва тоже. То есть проблема решена, транзакция либо и на мастере и на слэйве, либо нигде и приложение отрабатывает аборт а вы бежите отцеплять упавший слэйв или файловерить упавший мастер.
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442415
NewBie77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot hydrobiont]NewBie77пропущено...


Если у вас упал мастер, то транзакцию закомитить можно только при помощи спиритического сеанса и черной магии - чем она закончилась неизвестно и приложение может обработать ситуацию только как исключение - транзакция не прошла.

Если вы хотите защитится от ситуации, когда на мастере закомитили, приложение об этом узнало, на реплику транзакция еще не успела попасть и вот тут мастер падает и транзакция теряется, то для этого существует синхронная реплика - камит просто не вернет управление пока не доедет до слэйва тоже. То есть проблема решена, транзакция либо и на мастере и на слэйве, либо нигде и приложение отрабатывает аборт а вы бежите отцеплять упавший слэйв или файловерить упавший мастер.

Понятно с репликой спасибо, а вот схему с общим хранилищем(актив/пасив) и с асинхронной репликой нельзя в постгресе сделать?
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442417
hydrobiont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot NewBie77]hydrobiontпропущено...


Понятно с репликой спасибо, а вот схему с общим хранилищем(актив/пасив) и с асинхронной репликой нельзя в постгресе сделать?

Ну легко работать это точно не будет, я бы не рисковал.
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442419
NewBie77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot hydrobiont]NewBie77пропущено...


Ну легко работать это точно не будет, я бы не рисковал.

Огромное спасибо за ваш совет и потраченное время.
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442422
hydrobiont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewBie77,

Обращайтесь;)
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442423
NewBie77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В сторону Pgpool глядеть не советуете да ?
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442439
hydrobiont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewBie77,

не советую
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442446
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewBie77,

если не лень читать:

https://postgrespro.ru/blog/pgsql/53012

PS мне лень
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442460
NewBie77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwq,

не лень прочту )

мне посоветовали на одной странице фб такую схему : Postgresql + Repmgr + Barman
кто-нибудь использовал ?
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442463
hydrobiont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewBie77qwwq,

мне посоветовали на одной странице фб такую схему : Postgresql + Repmgr + Barman
кто-нибудь использовал ?

И repmgr и barman есть суть обвязки над коробочным функционалом посгреса - для управления репликацией и бэкапом соответственно. Кому нравится, кому нет - дело больше вкуса, в принципе и то и другое работает неплохо
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442473
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewBie77,

я бы посоветовал смакетировать пару вариантов
и выбрать лучший, или хотя бы работающий
и не спешить

но, как выяснилось, это тоже иногда не работает -- когда уже в полном масштабе натыкаешься на нежданчики (как напр. в 19876722 ), не покрытые тестами при макетировании
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442514
NewBie77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwqNewBie77,

я бы посоветовал смакетировать пару вариантов
и выбрать лучший, или хотя бы работающий
и не спешить

но, как выяснилось, это тоже иногда не работает -- когда уже в полном масштабе натыкаешься на нежданчики (как напр. в 19876722 ), не покрытые тестами при макетировании

Я все еще думаю над сценариями , мне нужен failover на идентичные данные иначе например у меня есть клиент у кого на депозите лежит 10к , он заплатил что-нибудь например за 1к мастер закомитил транзакцию и рухнул, реплика не успела забрать данные при failover у меня на реплике депозит будет 10к вместо 9к это уже проблема , интересно как другие решают такие проблемы при асинхронной реплике, для меня единственный вариант чтоб такой проблемы не было это синхронная реплика.
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39442667
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewBie77схему с общим хранилищем(актив/пасив) и с асинхронной репликой нельзя в постгресе сделать?
Можно. Но потом на общее хранилище падает бетонная плита и вас отвозят в лес.
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39443112
NewBie77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Клиент у нас с базой работает через Jboss где настроен pooling,имеет смысл установить по pgbouncer-у бд ?
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39443267
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewBie77Клиент у нас с базой работает через Jboss где настроен pooling,имеет смысл установить по pgbouncer-у бд ?
Если у вас только один сервер обработки - то не обязательно. Если к БД обращается несколько сервисов, то pgbouncer обязателен.

Но есть у меня подозрение, что если вы делаете платежную логику на jboss (и, подозреваю, через JPA) и рассчитываете на 500+ транзакций в пике, то ничего не взлетит. Впрочем, нужно на всю архитектуру смотреть.
...
Рейтинг: 0 / 0
Совет по высокой доступности
    #39443347
NewBie77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH3NewBie77Клиент у нас с базой работает через Jboss где настроен pooling,имеет смысл установить по pgbouncer-у бд ?
Если у вас только один сервер обработки - то не обязательно. Если к БД обращается несколько сервисов, то pgbouncer обязателен.

Но есть у меня подозрение, что если вы делаете платежную логику на jboss (и, подозреваю, через JPA) и рассчитываете на 500+ транзакций в пике, то ничего не взлетит. Впрочем, нужно на всю архитектуру смотреть.

Да через JPA, наш сениор обещяет что взлетит (сам сомневаюсь) скоро будут первые тесты ,посмотрим.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Совет по высокой доступности
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]