Size: a a a

2020 September 21

PS

Pavel Schekin in pro.kafka
Прошу прощения, поясните что такое AP и CP (почитать)
источник

I

Ivan in pro.kafka
Consistency vs availability
источник

SB

S B in pro.kafka
Pavel Schekin
Прошу прощения, поясните что такое AP и CP (почитать)
CAP теорема, вкратце суть в том, нужна ли тебе гарантированно консистентная система ценой отказа от доступности, или наоборот - система будет доступной, но ценой расхождения (неконсистентности).
источник

SB

S B in pro.kafka
Сразу скажу, что Кафка заточена под AP решение.
источник

N

Nick in pro.kafka
у кафки появились ручки для гарантированного флуша сообщения на диск перед отправке ack?
источник

N

Nikolay in pro.kafka
строгого C сложно добиться скорее. Вот допустим у меня 3 брокера. делаю send . допустим все 3 записали в свой лог даже и клиенту пришел ответ, что все записали (но не сбросили на диск при этом). выключаем питание на всех 3. C пропадает. не так ли? т.е без durability нету C.
источник

SB

S B in pro.kafka
Nick
у кафки появились ручки для гарантированного флуша сообщения на диск перед отправке ack?
да по-моему давно уже.
источник

N

Nick in pro.kafka
S B
да по-моему давно уже.
мне известен только флуш по интервалу времени, а не по событию
источник

N

Nikolay in pro.kafka
Nick
у кафки появились ручки для гарантированного флуша сообщения на диск перед отправке ack?
есть 2 настройки. 1) как часто флушить по времени 2) как часто в терминах количества сообщений
источник

N

Nick in pro.kafka
Nikolay
есть 2 настройки. 1) как часто флушить по времени 2) как часто в терминах количества сообщений
спасибо, значит ничего не поменялось
источник

SB

S B in pro.kafka
Nikolay
строгого C сложно добиться скорее. Вот допустим у меня 3 брокера. делаю send . допустим все 3 записали в свой лог даже и клиенту пришел ответ, что все записали (но не сбросили на диск при этом). выключаем питание на всех 3. C пропадает. не так ли? т.е без durability нету C.
это очень странный пример. если тебе брокер вернул успех, то это означает, что копия данных на диске у N реплик. и верь или нет, но это не гарантирует ту самую строгую C.
источник

N

Nikolay in pro.kafka
S B
это очень странный пример. если тебе брокер вернул успех, то это означает, что копия данных на диске у N реплик. и верь или нет, но это не гарантирует ту самую строгую C.
нет таких гарантий. в кафке durability через фоловеров. на диск они не обязаны скинуть. никто из них
источник

N

Nikolay in pro.kafka
есть параметр log.flush.interval.messages . он определяет как часто скидывать на диск.
источник

SB

S B in pro.kafka
Nikolay
нет таких гарантий. в кафке durability через фоловеров. на диск они не обязаны скинуть. никто из них
Вот именно поэтому Кафка AP, а не CP.  Я к тому, что даже если ты гипотетически представить что репликация синхронная, все равно этого недостаточно.
источник

N

Nikolay in pro.kafka
и вот второй log.flush.interval.ms
источник

N

Nikolay in pro.kafka
А мне кажется, что A тоже строго говоря нету . Вот если посмотретьна определение Every request receives a (non-error) response, without the guarantee that it contains the most recent write .  Т.е она всегда должна ответить без ошибки, но вот если у нас скажем 3 брокера и мы пишем с acks = 1 т.е пишем только на лидера. Допустим у нас такая ситуация, что 2 других брокера упали и жив только лидер. мы пишем на него  X минут. он падает после этого, но поднимаются остальные 2( а это продолжает лежать ). они ведь не смогут стать лидерами т.к у нас по умолчанию Unclean Leade rElection равно false. Все. получаем, что мы с тем топиком не можем работать
источник

N

Nikolay in pro.kafka
кстати значение по умолчанию для log.flush.interval.messages = Long.MaxValue
источник

В

Вячеслав in pro.kafka
А если упали все три, да ещё и датацетр потом сгорел и метеорит сверху - тогда ваще.

Речь же не об абсолютной устойчивости к любому трэшу, речь о возможности сконфигурировать устойчивую к определённым ситуациям систему.
Надо чтобы жила при выпадении двух брокеров - ставь пять и соответствующий конфиг acks и isr
источник

N

Nikolay in pro.kafka
а для интервала в 60 секунд!
источник

N

Nikolay in pro.kafka
т.е по умолчанию fsync 1 раз в 60 секунд! Вот это номер
источник