Size: a a a

2020 January 16

НИ

Николай Ижиков in pro.kafka
Roman Sharkov
а в случае если она просто недоступна? network split?

суть в том, что этот микросервис должен быть на 100% уверен, что сообщение в конце концов дойдёт до остальных частей системы и не потеряется для того чтобы закомитить локальную транзакцию

и если Кафка по какой либо причине недоступна для этого микросервиса то он остановится и не сможет осуществлять транзакции

в идеале бы этот сервис писал в некого локального посредника, который бы надёжно сохранял сообщения и асинхронно синхронил их на кафку
Локально в файл запиши строку. А соседним приложением переложи из файла в кафку
источник

RS

Roman Sharkov in pro.kafka
Николай Ижиков
Локально в файл запиши строку. А соседним приложением переложи из файла в кафку
т.е. всё-таки самому посредника придётся реализовывать? В экосистеме Кафки ничего подобного нет?
источник

ὦan in pro.kafka
Roman Sharkov
т.е. всё-таки самому посредника придётся реализовывать? В экосистеме Кафки ничего подобного нет?
Так как кафка сохранит если она упала)
источник

НИ

Николай Ижиков in pro.kafka
kafka-console-producer.sh --broker-list localhost:9092 --topic my_topic
--new-producer < my_file.txt
источник

НИ

Николай Ижиков in pro.kafka
Roman Sharkov
т.е. всё-таки самому посредника придётся реализовывать? В экосистеме Кафки ничего подобного нет?
Нужен посредник или нет зависит от твоих требований.
Можно ли тебе дважды положить в кафку одно и тоже сообщение.
Можешь ли ты отличить обработанные сообщения от необработанных в обработчике.
источник

RI

Roman Izutov in pro.kafka
Roman Sharkov
т.е. всё-таки самому посредника придётся реализовывать? В экосистеме Кафки ничего подобного нет?
У вас же несколько нод, надо выставить сервису прооизводителю опцию при отправке "подтвердить получение сообщения когда записадось на все реплики" (ALL) коэффициент репликации должен быть не 1 конечно: 3 на пример. И тогда вы будете защищены от потери сообщенек в случае падения кафки
источник

НИ

Николай Ижиков in pro.kafka
Roman Izutov
У вас же несколько нод, надо выставить сервису прооизводителю опцию при отправке "подтвердить получение сообщения когда записадось на все реплики" (ALL) коэффициент репликации должен быть не 1 конечно: 3 на пример. И тогда вы будете защищены от потери сообщенек в случае падения кафки
Кажется, Роману хочется обработать ситуацию когда весь кластер недоступен
источник

RI

Roman Izutov in pro.kafka
Николай Ижиков
Кажется, Роману хочется обработать ситуацию когда весь кластер недоступен
Коэффициент репликации 5. Реально вообще положить асе в таком случае?
источник

RS

Roman Sharkov in pro.kafka
ὦan
Так как кафка сохранит если она упала)
в том то и дело, что если микросервис X не может в Кафку надёжно записать событие то он не может продолжать работать, а это плохо. Решить это можно надёжным локальным посредником между кафкой и микросервисом (side-car) в который мы надёжно записываем события а дальше уже асинхронно пишем их в Кафку когда та доступна

и мой вопрос был: придётся ли этого посредника самому писать или в экосистеме Кафки подобная весчь уже реализована? Например некий клиент который уже таким образом пишет в кафку
источник

IR

Ivan Rasikhin in pro.kafka
какие гарантии что side-car не свалится?
источник

ὦan in pro.kafka
Roman Sharkov
в том то и дело, что если микросервис X не может в Кафку надёжно записать событие то он не может продолжать работать, а это плохо. Решить это можно надёжным локальным посредником между кафкой и микросервисом (side-car) в который мы надёжно записываем события а дальше уже асинхронно пишем их в Кафку когда та доступна

и мой вопрос был: придётся ли этого посредника самому писать или в экосистеме Кафки подобная весчь уже реализована? Например некий клиент который уже таким образом пишет в кафку
Тут как бы все просто
источник

ὦan in pro.kafka
Если без кафки жить нельзя и она упала
источник

ὦan in pro.kafka
То её надо поднимать
источник

RS

Roman Sharkov in pro.kafka
Ivan Rasikhin
какие гарантии что side-car не свалится?
это гораздо менее вероятно чем network split между X и кафкой, это локальный процесс на той-же тачке
источник

IR

Ivan Rasikhin in pro.kafka
network split это тоже форс мажор так-то
источник

IR

Ivan Rasikhin in pro.kafka
ретраями не решить?
источник

RS

Roman Sharkov in pro.kafka
Ivan Rasikhin
network split это тоже форс мажор так-то
однако вероятнее локального отказа
источник

RS

Roman Sharkov in pro.kafka
Ivan Rasikhin
ретраями не решить?
всмсл?
источник

IR

Ivan Rasikhin in pro.kafka
ну сервис пытается записать сообщение в кафку пока она не поднимется
источник

IG

Igor Gabaydulin in pro.kafka
Roman Sharkov
а в случае если она просто недоступна? network split?

суть в том, что этот микросервис должен быть на 100% уверен, что сообщение в конце концов дойдёт до остальных частей системы и не потеряется для того чтобы закомитить локальную транзакцию

и если Кафка по какой либо причине недоступна для этого микросервиса то он остановится и не сможет осуществлять транзакции

в идеале бы этот сервис писал в некого локального посредника, который бы надёжно сохранял сообщения и асинхронно синхронил их на кафку
Kafka Connect + Debezium?
источник