X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2Fimplementation%2Fkafka%2FKafkaServicesConfiguration.java;h=cda0b94f0030acd76b21c700fa56311891fba7f8;hb=6500199fa457b2c94497952ea0aaf8be6de5cdda;hp=d63111a7e04f618ef440e20f414491f22947d4db;hpb=76ea470b60f6664db4257b6935e1d5c848523ffc;p=demos%2Fkafka%2Fchat diff --git a/src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/KafkaServicesConfiguration.java b/src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/KafkaServicesConfiguration.java index d63111a7..cda0b94f 100644 --- a/src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/KafkaServicesConfiguration.java +++ b/src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/KafkaServicesConfiguration.java @@ -18,10 +18,12 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.kafka.support.serializer.JsonDeserializer; import org.springframework.kafka.support.serializer.JsonSerializer; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import java.time.Clock; import java.time.ZoneId; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Properties; @@ -34,7 +36,34 @@ import java.util.Properties; public class KafkaServicesConfiguration { @Bean - ChatHomeService kafkaChatHome( + ConsumerTaskExecutor chatRoomChannelTaskExecutor( + ThreadPoolTaskExecutor taskExecutor, + ChatRoomChannel chatRoomChannel, + Consumer chatRoomChannelConsumer, + ConsumerTaskExecutor.WorkAssignor workAssignor) + { + return new ConsumerTaskExecutor( + taskExecutor, + chatRoomChannel, + chatRoomChannelConsumer, + workAssignor); + } + + @Bean + ConsumerTaskExecutor.WorkAssignor workAssignor( + ChatBackendProperties properties, + ChatRoomChannel chatRoomChannel) + { + return consumer -> + { + List topics = + List.of(properties.getKafka().getChatRoomChannelTopic()); + consumer.subscribe(topics, chatRoomChannel); + }; + } + + @Bean + ChatHomeService kafkaChatHome( ChatBackendProperties properties, ChatRoomChannel chatRoomChannel) {