puzhibing
2026-08-21 3f6d5b788670170da195be8d8cee814069b3b224
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/KafkaTestController.java
@@ -1,13 +1,14 @@
package com.xiaopeng.automaticPilot.controller;
import com.alibaba.fastjson2.JSONObject;
import com.xiaopeng.automaticPilot.service.KafkaConsumerService;
import com.xiaopeng.common.core.domain.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@@ -16,28 +17,56 @@
    @Autowired
    private KafkaConsumerService kafkaConsumerService;
    /**
     * 消费消息 - XPU上报Robotaxi云端的消息topic(高优先级)
     *
     * @param message 消息内容
     * Kafka消费 - XPU上报高优先级消息
     */
    @KafkaListener(topics = "topic-prod-robotaxi-xpu-high", groupId = "group-robotaxi-xpu")
    public void topicProdRobotaxiXpuHigh(String message) {
    @KafkaListener(topics = "topic-prod-robotaxi-xpu-high",
            groupId = "group-robotaxi-xpu",
            containerFactory = "highPriorityFactory")
    public void consumeXpuHigh(String message) {
        log.info("收到XPU上报高优先级主题消息: {}", message);
        kafkaConsumerService.topicProdRobotaxiXpuHigh(message);
    }
    /**
     * 消费消息 - XPU上报Robotaxi云端的消息topic(低优先级)
     *
     * @param message 消息内容
     * Kafka消费 - XPU上报低优先级消息
     */
    @KafkaListener(topics = "topic-prod-robotaxi-xpu-normal", groupId = "group-robotaxi-xpu")
    public void topicProdRobotaxiXpuNormal(String message) {
    @KafkaListener(topics = "topic-prod-robotaxi-xpu-normal",
            groupId = "group-robotaxi-xpu",
            containerFactory = "normalPriorityFactory")
    public void consumeXpuNormal(String message) {
        log.info("收到XPU上报低优先级主题消息: {}", message);
        kafkaConsumerService.topicProdRobotaxiXpuNormal(message);
    }
    /**
     * HTTP测试接口 - 模拟高优先级消息
     */
    @PostMapping("/test/kafka/xpu-high")
    public void testXpuHigh(@RequestBody String message) {
        log.info("HTTP测试触发高优先级消息: {}", message);
        kafkaConsumerService.topicProdRobotaxiXpuHigh(message);
    }
    /**
     * HTTP测试接口 - 模拟低优先级消息
     */
    @PostMapping("/test/kafka/xpu-normal")
    public void testXpuNormal(@RequestBody String message) {
        log.info("HTTP测试触发低优先级消息: {}", message);
        kafkaConsumerService.topicProdRobotaxiXpuNormal(message);
    }
    /**
     * 模拟推送XPU消息
     */
    @PostMapping("/base/v1/pushXPUMessage")
    public R pushXPUMessage(@RequestBody String message) {
        log.info("收到XPU推送消息: {}", message);
        JSONObject json = new JSONObject();
        json.put("ts", System.currentTimeMillis());
        json.put("payload", message);
        kafkaConsumerService.topicProdRobotaxiXpuHigh(json.toJSONString());
        return R.ok();
    }
}