X-Git-Url: http://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2Fimplementation%2Fkafka%2FKafkaServicesConfiguration.java;h=6b7c15662c33992f8a36b78dedcfea178a3adc4a;hb=13f86063f851fc2c4ad6de56c8edb78bff9d0592;hp=c3027fa973a668c68573a0f4fb5a3c56a0abdd8d;hpb=bab48fac3824b1dbf660881e5c517dc98ab9cc8f;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 c3027fa9..6b7c1566 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 @@ -3,6 +3,7 @@ package de.juplo.kafka.chat.backend.implementation.kafka; import de.juplo.kafka.chat.backend.ChatBackendProperties; import de.juplo.kafka.chat.backend.domain.ChatHomeService; import de.juplo.kafka.chat.backend.domain.ShardingPublisherStrategy; +import de.juplo.kafka.chat.backend.implementation.haproxy.HaproxyShardingPublisherStrategy; import de.juplo.kafka.chat.backend.implementation.kafka.messages.AbstractMessageTo; import de.juplo.kafka.chat.backend.implementation.kafka.messages.data.EventChatMessageReceivedTo; import de.juplo.kafka.chat.backend.implementation.kafka.messages.info.EventChatRoomCreated; @@ -21,8 +22,8 @@ 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 reactor.core.publisher.Mono; +import java.net.InetSocketAddress; import java.time.Clock; import java.time.ZoneId; import java.util.HashMap; @@ -108,7 +109,7 @@ public class KafkaServicesConfiguration } @Bean - ChatHomeService kafkaChatHome( + KafkaChatHomeService kafkaChatHome( ChatBackendProperties properties, InfoChannel infoChannel, DataChannel dataChannel) @@ -129,6 +130,8 @@ public class KafkaServicesConfiguration properties.getKafka().getInfoChannelTopic(), producer, infoChannelConsumer, + properties.getKafka().getPollingInterval(), + properties.getKafka().getNumPartitions(), properties.getKafka().getInstanceUri()); } @@ -149,6 +152,7 @@ public class KafkaServicesConfiguration dataChannelConsumer, zoneId, properties.getKafka().getNumPartitions(), + properties.getKafka().getPollingInterval(), properties.getChatroomBufferSize(), clock, infoChannel, @@ -285,15 +289,15 @@ public class KafkaServicesConfiguration } @Bean - ShardingPublisherStrategy shardingPublisherStrategy() + ShardingPublisherStrategy shardingPublisherStrategy( + ChatBackendProperties properties) { - return new ShardingPublisherStrategy() { - @Override - public Mono publishOwnership(int shard) - { - return Mono.just(Integer.toString(shard)); - } - }; + String[] parts = properties.getKafka().getHaproxyRuntimeApi().split(":"); + InetSocketAddress haproxyAddress = new InetSocketAddress(parts[0], Integer.valueOf(parts[1])); + return new HaproxyShardingPublisherStrategy( + haproxyAddress, + properties.getKafka().getHaproxyMap(), + properties.getInstanceId()); } @Bean