зеркало из
				https://github.com/iharh/notes.git
				synced 2025-11-04 07:36:08 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			126 строки
		
	
	
		
			6.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			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
 |