我们将创建两个微服务:一个是 Order Service,另一个是 Product Service。这两个服务将使用 Spring Cloud Bus 和 RabbitMQ 来进行消息传递。
Order Service
首先,让我们来创建 Order Service。
(资料图片仅供参考)
@SpringBootApplication@RestController@EnableBinding(Sink.class)public class OrderServiceApplication { private final Logger logger = LoggerFactory.getLogger(getClass()); @StreamListener(Sink.INPUT) public void handle(String message) { logger.info("Received message: {}", message); } @GetMapping("/order") public String placeOrder() { String message = "Order placed"; logger.info("Sending message: {}", message); return message; } public static void main(String[] args) { SpringApplication.run(OrderServiceApplication.class, args); }}
这个应用程序使用 @EnableBinding 注解将 Sink绑定到它的消息代理上。它还使用 @StreamListener 注解来指定消息处理方法。
在 Order Service 中,我们还定义了一个 /order REST 端点。当该端点被调用时,应用程序会向消息代理发送一条消息。该消息将被 Product Service 接收并处理。
Product Service
接下来,让我们来创建 Product Service。
@SpringBootApplication@RestController@EnableBinding(Source.class)public class ProductServiceApplication { private final Logger logger = LoggerFactory.getLogger(getClass()); private final MessageChannel output; public ProductServiceApplication(Source source) { this.output = source.output(); } @PostMapping("/product") public String addProduct(@RequestBody String product) { String message = "Product added: " + product; logger.info("Sending message: {}", message); output.send(MessageBuilder.withPayload(message).build()); return message; } public static void main(String[] args) { SpringApplication.run(ProductServiceApplication.class, args); }}
这个应用程序使用 @EnableBinding 注解将 Source 绑定到它的消息代理上。它还定义了一个 /product REST 端点,该端点用于添加新产品。
当 /product 端点被调用时,Product Service 会向消息代理发送一条消息,该消息将被 Order Service 接收并处理。
4.3 运行示例
我们已经创建了 Order Service 和 Product Service,接下来让我们运行它们并查看消息传递的结果。
首先,我们需要启动 RabbitMQ 服务器。然后,我们可以使用以下命令分别启动 Order Service 和 Product Service:
mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8081 (Order Service)mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8082 (Product Service)
当这两个服务都已经启动时,我们可以通过访问 Order Service 的 /order 端点和 Product Service 的 /product 端点来测试它们之间的消息传递。
在 Order Service 的控制台输出中,我们应该能够看到类似以下内容的消息:
Received message: Product added: {product name}
这表明 Product Service 成功地向 Order Service 发送了一条消息,并且 Order Service 成功地接收并处理了该消息。
关键词:
相关内容
- 配置Spring Cloud Bus并集成消息代理示例 a>
- 环球快看:Spring Cloud Bus在服务之间发送和接收消息(二) a>
- 每日动态!小心,你发的这种照片可能泄露国家秘密! a>
- 天天观速讯丨深圳加大投入和金融扶持 企业勇当科技创新主体 a>
- 天天观焦点:河南印发《进一步促进消费若干政策措施》:购车补贴政策延续至6月底 a>
- 埃及航空公司宣布暂停开罗往返喀土穆航班72小时 a>
- 观点:清北学生免费游政策有变?淄博官员:并不是要说话不算话,而是…… a>
- 天天快报!这些家门口的“充电站”,你去过吗? a>
- 台州玉环市清港中心幼儿园新园进入完工冲刺阶段 a>
- 台州市域铁路S2线、台州1号公路……这些重大项目最新进展 a>
- 记者:迪巴拉伤无大碍只是内收肌疲劳 亚伯拉罕无需接受手术 a>
- 当前热文:郑州发布关于“共享厨房”相关情况的调查通报 a>
- 大连两所民办本科学校举办者拟变更 a>
- 天天热议:如果今明两年不买房,未来5年随便挑还是更买不起?内行道出实情 a>
- 手握25万元,该怎么打理年息能够上万?内行人透露经验 a>
- 天天报道:海信家电一季度净利润预计同比增长100%-135% a>
- 阿根廷过去12个月累计通胀率达104.3% a>
- 每日消息!日本正式敲定首个核聚变能源开发战略方案 争取2050年左右实现核聚变发电 a>
- 当前动态:牧马人的胎花纹设计得很好看,外观设计的很霸气 a>
- 全球焦点!多场酒业论坛亮相糖酒会 业界:消费复苏下行业发展趋势向好 a>