|
@@ -1,8 +1,15 @@
|
|
|
package com.dragon.tj.portal.component.message;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import com.dragon.tj.portal.service.AppInfoService;
|
|
|
import org.apache.kafka.clients.admin.NewTopic;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
+import org.springframework.kafka.config.TopicBuilder;
|
|
|
+import org.springframework.kafka.core.KafkaAdmin;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* @author huey China.
|
|
@@ -12,43 +19,51 @@ import org.springframework.context.annotation.Configuration;
|
|
|
@Configuration
|
|
|
public class KafkaInitialConfiguration {
|
|
|
|
|
|
- public static String sseTopic = "sseTopic";
|
|
|
-
|
|
|
/**
|
|
|
- *
|
|
|
- @Bean
|
|
|
- public KafkaAdmin.NewTopics topics456() {
|
|
|
- return new NewTopics(
|
|
|
- TopicBuilder.name("defaultBoth")
|
|
|
- .build(),
|
|
|
- TopicBuilder.name("defaultPart")
|
|
|
- .replicas(1)
|
|
|
- .build(),
|
|
|
- TopicBuilder.name("defaultRepl")
|
|
|
- .partitions(3)
|
|
|
- .build());
|
|
|
- }
|
|
|
-
|
|
|
- ————————————————
|
|
|
- 版权声明:本文为CSDN博主「Doker 多克」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
|
|
|
- 原文链接:https://blog.csdn.net/leesinbad/article/details/129889030
|
|
|
- *
|
|
|
- */
|
|
|
+ * 信息管理
|
|
|
+ */
|
|
|
+ public static final String sseTopic = "sseTopic";
|
|
|
+
|
|
|
/**
|
|
|
- * 创建一个名为 sseTopic 的Topic并设置分区数为8,分区副本数为2
|
|
|
+ * @author huey China.
|
|
|
+ * @Description : 注入信息及不同系统级别的topic
|
|
|
+ * @Date Created in 2023/7/11 16:03
|
|
|
*/
|
|
|
@Bean
|
|
|
- public NewTopic initialTopic() {
|
|
|
+ public KafkaAdmin.NewTopics messageTopics() {
|
|
|
+// List<String> allAppSysCodes = appInfoService.getAllAppSysCodes();
|
|
|
+ NewTopic base = TopicBuilder.name(sseTopic).partitions(1).replicas(1).build();
|
|
|
|
|
|
- return new NewTopic(sseTopic, 1, (short) 1);
|
|
|
+ NewTopic[] newTopics = null;
|
|
|
|
|
|
+// if (CollUtil.isNotEmpty(allAppSysCodes)) {
|
|
|
+// newTopics = new NewTopic[allAppSysCodes.size() + 1];
|
|
|
+// for (int i = 0; i < allAppSysCodes.size(); i++) {
|
|
|
+// String sysCode = allAppSysCodes.get(i);
|
|
|
+// newTopics[i] = TopicBuilder.name(sseTopic + "-" + sysCode).partitions(1).replicas(1).build();
|
|
|
+// }
|
|
|
+// newTopics[allAppSysCodes.size()] = base;
|
|
|
+// } else {
|
|
|
+// newTopics = new NewTopic[]{base};
|
|
|
+// }
|
|
|
+ newTopics = new NewTopic[]{base};
|
|
|
+ //信息相关
|
|
|
+ KafkaAdmin.NewTopics infoBase = new KafkaAdmin.NewTopics(newTopics);
|
|
|
+ return infoBase;
|
|
|
}
|
|
|
|
|
|
- // 如果要修改分区数,只需修改配置值重启项目即可
|
|
|
- // 修改分区数并不会导致数据的丢失,但是分区数只能增大不能减小
|
|
|
- @Bean
|
|
|
- public NewTopic updateTopic() {
|
|
|
- return new NewTopic(sseTopic, 1, (short) 1);
|
|
|
-
|
|
|
- }
|
|
|
+// @Bean
|
|
|
+// public NewTopic initialTopic() {
|
|
|
+//
|
|
|
+// return new NewTopic(sseTopic, 1, (short) 1);
|
|
|
+//
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 如果要修改分区数,只需修改配置值重启项目即可
|
|
|
+// // 修改分区数并不会导致数据的丢失,但是分区数只能增大不能减小
|
|
|
+// @Bean
|
|
|
+// public NewTopic updateTopic() {
|
|
|
+// return new NewTopic(sseTopic, 1, (short) 1);
|
|
|
+//
|
|
|
+// }
|
|
|
}
|