Тёмный

DX Lab | Transações no Apache Kafka - Vale a pena? Performance e facilidade em casos de uso 

DX Lab
Подписаться 1,6 тыс.
Просмотров 714
50% 1

Опубликовано:

 

22 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 7   
@juangarayjuangaray412
@juangarayjuangaray412 3 года назад
Show de bola! Excelente assunto. quebrar varios mitos, sobre transacoes.
@rodrigocosta9256
@rodrigocosta9256 4 года назад
Show!
@eliocjr
@eliocjr 4 года назад
Gostei bastante do formato, é o primeiro vídeo que assisto no canal de vocês! Que excelente trabalho feito!
@DXLab
@DXLab 4 года назад
Que bom Elio!! Comentários como o seu renovam nossas energias para continuar produzindo! Muito obrigado
@juliofalbo9968
@juliofalbo9968 4 года назад
Opa pessoal, muito obrigado pelo video, ficou sensacional. Gostaria de dar minha limitada opiniao sobre essa feature do Kafka. Primeiramente achei incrivel ter essa possibilidade no Kafka, mas depois, pensando direito, achei um cenario beeeeem complexo e se voce esta nele, algo na sua arquitetura ta errada. Basicamente o Kafka criou um 2PC (Two-Phase Commit), onde ele "marca" os offsets (eventos) como "nao comitados" e vc tem q chamar o commit manualmente para completar a transacao. Como disse, se a gente tem um cenario desse, usando Kafka, a gente nao precisa de um 2PC, a gente precisa repensar nossa arquitetura e acabar com a transacao distribuida. Deixar o "broker" responsavel pela sua cadeia de transacao me parece "mais do mesmo". Por favor, me corrijam se eu me equivoquei ou nao entendi direito os cenarios aplicaveis. Mais uma vez, muito obrigado por essa discussao!
@DXLab
@DXLab 4 года назад
Fantástico seu comentário Júlio. Esse tipo de discussão que devemos ter como arquitetos/desenvolvedores. Veja bem, existem casos legítimos para uso dessa feature. Por exemplo, em uma arquitetura SEDA, sem uso de banco de dados (apenas Kafka para input e output), em que por algum motivo, exista necessidade de garantia de atomicidade nesse processamento. Nesse tipo de situação, a feature de transações tem seu lugar... É uma maneira de evitar possíveis problemas com duplicidade de mensagens, leitura de mensagens "não comitadas" etc. Minimiza necessidade de compensações. Mas não é a unica maneira de se fazer as coisas. Eu gosto da sua linha de raciocínio. A primeira coisa em transações distribuídas é entender se elas realmente são necessárias ou se surgiram por um uso errado das capacidades que temos. Sempre que puder evitar uma transação distribuída, evite =) Nesse sentido, deixar o broker responsável pela transação é sim a solução "mais do mesmo". É o mesmo que fazemos com banco de dados.... Isso tem o lado bom (facilita a vida em algumas situações) e o lado ruim, que deixa as pessoas acomodadas com a solução mais fácil (que nem sempre é a melhor). Usar transações do Kafka tem uma penalidade de performance muito forte. Temos que pensar bem antes de usar essa solução. Mas isso depende muito do seu proposito.
@juliofalbo9968
@juliofalbo9968 4 года назад
DX Lab , muito obrigado pela resposta. Entendi e concordo demais com sua resposta. Realmente ter mais mais uma opção para “solucionar” problemas de transações distribuídas pode ser interessante! Mais uma vez, muito obrigado!
Далее
Why is it different from what I thought?
00:15
Просмотров 1,5 млн
Paint Projects
00:17
Просмотров 4,7 млн
Why is it different from what I thought?
00:15
Просмотров 1,5 млн