WIP - Ein Versuch (vielleicht Unsinn)
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / ChatBackendProperties.java
index 177d4f5..21330e1 100644 (file)
@@ -4,6 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
+import java.net.URI;
 import java.nio.file.Paths;
 
 
@@ -12,10 +13,14 @@ import java.nio.file.Paths;
 @Setter
 public class ChatBackendProperties
 {
+  private String instanceId = "DEV";
   private String allowedOrigins = "http://localhost:4200";
   private int chatroomBufferSize = 8;
   private ServiceType services = ServiceType.inmemory;
   private InMemoryServicesProperties inmemory = new InMemoryServicesProperties();
+  private KafkaServicesProperties kafka = new KafkaServicesProperties();
+  private String haproxyRuntimeApi = "haproxy:8401";
+  private String haproxyMap = "/usr/local/etc/haproxy/sharding.map";
 
 
   @Getter
@@ -24,12 +29,25 @@ public class ChatBackendProperties
   {
     private ShardingStrategyType shardingStrategy = ShardingStrategyType.none;
     private int numShards = 1;
-    private int[] ownedShards = new int[] { 0 };
-    private StorageStrategyType storageStrategy = StorageStrategyType.files;
+    private int[] ownedShards = new int[0];
+    private URI[] shardOwners = new URI[0];
+    private StorageStrategyType storageStrategy = StorageStrategyType.none;
     private String storageDirectory = Paths.get(System.getProperty("java.io.tmpdir"),"chat", "backend").toString();
   }
 
-  public enum ServiceType { inmemory }
-  public enum StorageStrategyType { files, mongodb }
+  @Getter
+  @Setter
+  public static class KafkaServicesProperties
+  {
+    private URI instanceUri = URI.create("http://localhost:8080");
+    private String clientIdPrefix = "DEV";
+    private String bootstrapServers = ":9092";
+    private String infoChannelTopic = "info_channel";
+    private String dataChannelTopic = "data_channel";
+    private int numPartitions = 2;
+  }
+
+  public enum ServiceType { inmemory, kafka }
+  public enum StorageStrategyType { none, files, mongodb }
   public enum ShardingStrategyType { none, kafkalike }
 }