Size: a a a

Kubernetes — русскоговорящее сообщество

2020 October 19

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
*sm1Ly
я знаю как работает перкона. я думал сделать так:
берём 2 ДЦ. делаем 7 нод. в 1ом пишем на одну из трёх, с трёх читаем, во втором так же с 4мя.
ты хочешь в двух разных дц писать одновременно?
Там же не рекомендуется так делать, максимум один ДЦ активный другой резервный. И между ними асинхронная репликация.
Типо такого
https://www.percona.com/blog/wp-content/uploads/2018/11/Picture3.png
источник

AA

Artyom Abramovich in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
ты хочешь в двух разных дц писать одновременно?
Там же не рекомендуется так делать, максимум один ДЦ активный другой резервный. И между ними асинхронная репликация.
Типо такого
https://www.percona.com/blog/wp-content/uploads/2018/11/Picture3.png
+
источник

AF

Aleksey Freeman in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
ты хочешь в двух разных дц писать одновременно?
Там же не рекомендуется так делать, максимум один ДЦ активный другой резервный. И между ними асинхронная репликация.
Типо такого
https://www.percona.com/blog/wp-content/uploads/2018/11/Picture3.png
+
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Под капотом percona xtradb cluster таже самая galera. Поэтому те же ограничения. Должен быть минимальный latency между хостами.  А растягивать ее на несколько датацентров - сулит большими проблемами
источник

*

*sm1Ly in Kubernetes — русскоговорящее сообщество
Aleksey Freeman
У вас Low latency канал с гарантированным резервированием?
к сожалению нет. паблик через свой впн, о канале пока не смог договориться
источник

AF

Aleksey Freeman in Kubernetes — русскоговорящее сообщество
*sm1Ly
к сожалению нет. паблик через свой впн, о канале пока не смог договориться
Тогда даже не пытайтесь вкручивать туда Percona Xtradb Cluster
источник

G

Grigoriy in Kubernetes — русскоговорящее сообщество
*sm1Ly
ещё раз. мне надо разделить все это на 2 ДЦ.
Геокластер постореса?
источник

*

*sm1Ly in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
ты хочешь в двух разных дц писать одновременно?
Там же не рекомендуется так делать, максимум один ДЦ активный другой резервный. И между ними асинхронная репликация.
Типо такого
https://www.percona.com/blog/wp-content/uploads/2018/11/Picture3.png
а как мне тогда получить консистентные данные в двух местах ?
источник

AF

Aleksey Freeman in Kubernetes — русскоговорящее сообщество
*sm1Ly
а как мне тогда получить консистентные данные в двух местах ?
Либо при помощи асинхронной репликации, либо решать эту задачу на уровне приложения записью транзакционного лога в два разных ДЦ
источник

AF

Aleksey Freeman in Kubernetes — русскоговорящее сообщество
Но полностью консистентных данных добиться практически невозможно
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
*sm1Ly
а как мне тогда получить консистентные данные в двух местах ?
а никак. Возможно тебе нужно шардирование. Я точной задачи не знаю.
Можно попробовать асинхронный master-master сделать, не уверен что так можно. Но если у тебя в одном ДЦ не требуется получать моментально данные записанные из другого ДЦ. Но все таки возможно ты хочешь шарды. Ну galera  между ДЦ, точно не твой вариант
источник

*

*sm1Ly in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
а никак. Возможно тебе нужно шардирование. Я точной задачи не знаю.
Можно попробовать асинхронный master-master сделать, не уверен что так можно. Но если у тебя в одном ДЦ не требуется получать моментально данные записанные из другого ДЦ. Но все таки возможно ты хочешь шарды. Ну galera  между ДЦ, точно не твой вариант
а если я получу гарантированный канал?
мне нужно обсепечить отказоустойчивость на уровне ДЦ. один упал - второй принял всю нагрузку. терять данные нельзя
источник

AF

Aleksey Freeman in Kubernetes — русскоговорящее сообщество
Если что-то случится с каналом или он станет тормозить - репликация в лучшем случае лихо развалится, а в худшем - запись в БД станет тормозить
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
*sm1Ly
а если я получу гарантированный канал?
мне нужно обсепечить отказоустойчивость на уровне ДЦ. один упал - второй принял всю нагрузку. терять данные нельзя
ну это актив/пассив. все равно же.
Там смотри какая проблема. galera если видит отставание одного мастера от другого. Она тупо притормаживает запросы, чтобы мастера были синхронизированы. И если ты это растянешь между ДЦ, то могут быть нормальные такие тормоза на запись
источник

*

*sm1Ly in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
ну это актив/пассив. все равно же.
Там смотри какая проблема. galera если видит отставание одного мастера от другого. Она тупо притормаживает запросы, чтобы мастера были синхронизированы. И если ты это растянешь между ДЦ, то могут быть нормальные такие тормоза на запись
так я хочу сделать прослойку. из редиса в каждом дц и кролик\кафка на запись
источник

*

*sm1Ly in Kubernetes — русскоговорящее сообщество
т.е. мы читаем из редиса, пишем через очередь. очередь потихоньку разгребет
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
*sm1Ly
так я хочу сделать прослойку. из редиса в каждом дц и кролик\кафка на запись
типо писать в очередь, а потом из нее в базу?
источник

*

*sm1Ly in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
типо писать в очередь, а потом из нее в базу?
да
источник

*

*sm1Ly in Kubernetes — русскоговорящее сообщество
причем очередь в каждом дц своя
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
*sm1Ly
да
тут не подскажу, сорян. Такого опыта нет. У меня приложения в основном ожидают быструю запись в базу, никаких очередей.
источник