# trace01 **Repository Path**: wuyuan/trace01 ## Basic Information - **Project Name**: trace01 - **Description**: springboot4整合各种 openfeign RestTemplate HttpExchange kafka rabbitmq EnableSync traceId - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-29 - **Last Updated**: 2026-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Trace01 一个展示分布式系统间 HTTP 通信与消息队列交互的 Spring Boot 示例项目。 ## 项目简介 该项目演示了微服务架构中客户端与服务端之间的通信机制,包含以下核心功能: - **HTTP 服务调用**:基于 Spring Cloud OpenFeign 的服务间调用 - **消息队列集成**:使用 RabbitMQ 实现异步消息传递 - **分布式追踪**:HTTP 请求链路追踪 ID 的传递 ## 技术栈 - Java 17 - Spring Boot 3.x - Spring Cloud OpenFeign - Spring AMQP (RabbitMQ) - Maven ## 项目结构 ``` trace01 ├── client/ # 客户端模块 │ └── src/main/java/com/podman/ │ ├── Client.java # 启动类 │ ├── config/ # 配置类 │ │ ├── HttpTraceIdConfig.java # HTTP追踪ID配置 │ │ └── RabbitMQConfig.java # RabbitMQ配置 │ └── web/ # Web层 │ ├── ClientController.java # 控制器 │ └── exchange/ # HTTP调用接口 │ ├── HttpInvoker.java │ └── OpenIn.java └── product/ # 产品服务模块 └── src/main/java/com/podman/ ├── Product.java # 启动类 ├── config/ # 配置类 │ └── MqConsumer.java # 消息消费者 └── controller/ # 控制器 └── UserController.java ``` ## 快速开始 ### 前置要求 - JDK 17+ - Maven 3.8+ - RabbitMQ(可选,如不使用消息队列功能可忽略) ### 构建项目 ```bash # 克隆项目后进入目录 cd trace01 # 编译项目 mvn clean install ``` ### 运行服务 1. **启动 Product 服务**(端口:8088) ```bash cd product mvn spring-boot:run ``` 2. **启动 Client 服务**(端口:8080) ```bash cd client mvn spring-boot:run ``` ### 验证运行 - 访问 Client 服务:http://localhost:8080/client - 访问 Product 服务:http://localhost:8088/users ## 功能说明 ### Client 模块 Client 模块作为调用方,提供了: - `/client` 端点:返回服务问候信息 - HTTP 服务调用能力:通过 Feign 接口调用外部服务 - 消息队列发送能力:可向 RabbitMQ 发送消息 ### Product 模块 Product 模块作为服务提供方,提供了: - `/users` 端点:返回用户列表信息 - RabbitMQ 消费能力:监听并处理来自消息队列的消息 ### 消息队列配置 项目预配置了 RabbitMQ 主题交换机: - 交换机:`topic.exchange` - 队列:`topic.user.queue` - 绑定:支持路由键 `topic.user.#` ## 配置说明 各模块的配置分别位于 `src/main/resources/application.yml` 文件中,主要配置项包括: - 服务端口 - RabbitMQ 连接信息 - 日志配置 ## 许可证 本项目仅供学习交流使用。