notes/messaging/kafka/docs/presentations.txt
ihar_hancharenka 5fce03ca4f m
2025-09-16 12:26:08 +03:00

126 строки
6.4 KiB
Plaintext

Confluent
https://www.youtube.com/channel/UCmZz-Gj3caLLzEWBtbYUXaA/videos
Kafka Summit 2017:
https://www.youtube.com/watch?v=ySf7bDBHRUQ
2025
JavaTechie - Does Kafka Guarantee Message Ordering? 0:00 of 28:27
https://www.youtube.com/watch?v=Jl-nauqEtEo
JPoint - Golovko - Spring Kafka - How not to Shoot a Foot 25:00 of 46:18
https://www.youtube.com/watch?v=9r80FRcKGCA
! 10:00 ack=all setting !!!
! 12:00 @Bean DefaultKafkaProducerFactoryCustomizer serializerCustomizer(ObjectMapper objectMapper) {
! var jsonSerializer = new JsonSerializer(objectMapper);
! return producerFactory -> producerFactory.setValueSerializer(jsonSerializer);
! }
! 12:30 listener i-faces:
! MessageListener
! AcknowledgingMessageListener
! ConsumerAwareMessageListener
! AcknowledgingConsumerAwareMessageListener
! 13:30 @Bean KafkaMessageListenerContainer<String, OtpDto> kafkaListenerContainer(
! ConsumerFactory<String, OtpDto> factory,
! MessageListener<String, OtpDto> listener) {
! var containerProperties = new ContainerProperties(MY_TOPIC);
! containerProperties.setMessageListener(listener);
! return new KafkaMessageListenerContainer<>(factory, containerProperties);
! } # it is single-threaded and very agile (gibkiy)
! 16:00
! props.put(JsonDeserializer.TYPE_MAPPINGS, "some.package.dto.OtpDto:" + OtpDto.class.getCanonicalName());
! 17:00 - manual dserialization:
! props.put(JsonDeserializer.USE_TYPE_INFO_HEADERS, false);
! props.put(JsonDeserializer.VALUE_DEFAULT_TYPE, OtpDto.class.getCanonicalName());
! 18:00 ConcurrentMessageListeningContainer<String, OtpDto> kafkaListenerContainer(...) {
! ...; container.setConcurrency(4); // for KafkaMessageListenerContainer
! }
! 19:00 var ... = new ErrorHandlingDeserializer(jsonDeserializer);
! 20:00 var recoverer = new DeadLetterPublishingRecoverer(template);
! var errorHandler = new DefaultErrorHandler(recoverer);
! listenerContainer.setCommonErrorHandler(errorHandler);
! 22:00 it would be good to have distinct DLTs for distinct types of ex-s
! @Bean public CommonErrorHandler commonErrorHandler(KafkaTemplate<byte[], byte[]> deserializationDltTemplate,
! KafkaTemplate<String, OtpDto> otpKafkaTemplate) {
! CommonErrorHandler defaultErrorHandler = defaultErrorHandler(otpKafkaTemplate);
! var delegatingErrorHandler = new CommonDelegatingErrorHandler(defaultErrorHandler);
! delegatingErrorHandler.setErrorHandlers(errorHandlingDelegates(deserializationDltTemplate));
! return delegatingErrorHandler;
! }
! 24:00
! private CommonErrorHandler defaultErrorHandler(KafkaTemplate<String, OtpDto> otpKafkaTemplate) {
! return new DefaultErrorHandler(
! new DeadLetterPublishingRecoverer(otpKafkaTemplate),
! new FixedBackOff(0, 2));
! }
! 24:30 -//- errorHandlingDelegates impl -//-
JavaGuru - Apache Kafka of p28
https://www.youtube.com/playlist?list=PLt91xr-Pp57Q50WsXz9r-zmxy5ceu_hp_
2024
Otus - Kafka and ClickHouse of 1:41:20
https://www.youtube.com/watch?v=Jp1SEm4UU48
! 49:00 - ClickHouse Kafka Connect Sink
! 52:00 - REST Api for Kafka Connectors
! 1:00:00 - Debezium Docker image for pg
Spectr - Koreysha - Apache Kafka Typical Erors of 54:46
https://www.youtube.com/watch?v=FGETRVOPdiA
https://drive.google.com/file/d/1APmfDCMIDXStkR5uld5LlbdC2N3Lxho6/view
! 34:00 session.timeout.ms, heartbeat.interval.ms, max.poll.interval.ms
ByteByteGo - System Design: Why is Kafka so Popular? of 4:19
https://www.youtube.com/watch?v=yIAcHMJzqJc
SelskiJavist - Kafka Fundamentals 0:00 of 2:09:05
https://www.youtube.com/watch?v=YluvsLmPU78
! producer/consumer related
at-least-onece, at-most-once, fixing offset, a lot of props
transactions, partitions direct manip-n
2023
Otus - Petrelevich - Working with Kafka in Boot apps 20:00 of 54:12
https://www.youtube.com/watch?v=9FikRH8rXas
2022
SpringDeveloper - Long - Spring Tips: Spring Boot & Apache Kafka of 42:58
https://www.youtube.com/watch?v=DJHUNSGh3K0
! 2:00 - Kafka is not a msg-system, but distributed log with almost linear scalability
Slurm - Obkafkilsya 0:00 of 1:06:43
https://www.youtube.com/watch?v=5Sf8nKRQc8Y
Slurm - Programming with Kafka 0:00 of 1:23:33
https://www.youtube.com/watch?v=ey2QE_mPVpQ
2021
https://drive.google.com/drive/folders/1GyQkciZbOY6fbGpn6OIp1iZswOWiL8bq
Shevlyagin - Apache Kafka Workshop of 1:25:30
https://www.youtube.com/watch?v=W-wr4Fxmjsc
https://github.com/vitshevl/kafka-demo
Bogdanovskiy - Kafka Fundamentals of 49:22
https://www.youtube.com/watch?v=-AZOi3kP9Js
Korolkov - Rabbit 0:00 of 1:09:39
https://www.youtube.com/watch?v=ijR2VXgSQO4
https://github.com/kaa-ghub/spring-cloud-stream-demo
2019
https://habr.com/ru/company/jugru/blog/451268/
https://speakerdeck.com/jugmsk/viktor-gamov-kafka-streams-iq-zachiem-nam-baza-dannykh-nam-baza-nie-nuzhna
https://inponomarev.github.io/kstreams-examples/#/
https://www.infoq.com/presentations/kafka-pks
2018
Waehner - Introduction to Apache Kafka as Event-Driven Open Source Streaming Platform
https://www.youtube.com/watch?v=OXLABLRNuzI
HighLoadChannel - Vybornov - Kafka in HighLoad ru of 37:49
https://www.youtube.com/watch?v=BtmYjTO1EpI
! The only way to provide exactly-once semantics is to atomically save both offsets and data outside of kafka
! 18:00 - manual leaders assign for part-s
! 19:00 - increase replication (paradoxal, but strangely works fine)
2017
Ward - Introduction to Apache Kafka
https://www.youtube.com/watch?v=UEg40Te8pnE
Stopford - Power of the Log: LSM and Append Only Data Structures
https://www.infoq.com/presentations/lsm-append-data-structures
Reis - Functional Streams with Kafka
https://www.slideshare.net/LuisMiguelReis2/functional-streams-with-kafka-a-comparison-between-akkastreams-and-fs2
https://www.youtube.com/watch?v=fwQMdxYPRIo
https://www.infoq.com/presentations/kafka-spring
https://www.youtube.com/watch?v=l8V6PkVV1Ec
2016
https://www.slideshare.net/SpringCentral/i-cant-believe-its-not-a-queue-using-kafka-with-spring
https://www.slideshare.net/SpringCentral/spring-for-apache-kafka
Narkhede
https://www.infoq.com/presentations/etl-streams