/**
* Kafka 自动配置类,启动时创建 Topic
*/
@Component
@RequiredArgsConstructor
@Slf4j
public class KafkaTopicConfig {
private final KafkaAdmin kafkaAdmin;
/**
* 初始化 Kafka Topics
*/
@PostConstruct
public void initKafkaTopics() {
log.info("开始初始化 Kafka Topics...");
// 声明通用的 Topic(可复用方法)
createTopicIfNotExists(GlobalKafkaConstant.EXCHANGE_DIRECT);
// 创建延迟消息 Topic(如果需要外部插件支持,比如时间调度器)
createTopicIfNotExists(GlobalKafkaConstant.EXCHANGE_DELAY);
// 创建死信 Topic(用于失败消息重试)
createTopicIfNotExists(GlobalKafkaConstant.EXCHANGE_DLX);
// 批量声明业务 Topic
declareTopicAndConsumerGroup(GlobalKafkaConstant.Jst.UploadOrder.class);
declareTopicAndConsumerGroup(GlobalKafkaConstant.Excel.FrontExportDelayDelete.class);
declareTopicAndConsumerGroup(GlobalKafkaConstant.Doris.RetrySyncSaleOrder.class);
declareTopicAndConsumerGroup(GlobalKafkaConstant.Doris.Sync