| | |
| | | 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 |
| | |
| | | @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(); |
| | | } |
| | | } |