配置Spring Cloud Bus并集成消息代理示例_当前热点
我们将创建两个微服务:一个是 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并集成消息代理示例_当前热点
- 歌尔股份:2023年一季度净利润1.06亿元,同比下降88.22%_环球热推荐
- 热头条丨2023年北京高温补贴是哪几个月
- 世界热讯:表示国家的英语单词怎么写_表示国家的英语单词
- 预售21.99-33.99万,Hyper GT为年少有为者而来 热讯
- 青秀区开展“健康义诊 ‘艾’在青秀”活动
- 报道:2023厦门国际会展周举行 汇聚30多场精品活动
- “老头乐”上牌就能满街跑?没驾照也能开?小心,有商家开始忽悠人了
- 高贵得很,高攀不起的星座
- 在温榆河公园,寻找春日里最美丽的时光
- 动态:第8个安全教育日,华东理工师生直播演练“实验室化学品泄漏应急”
- 业内资讯
- 当前观点:甘肃白柳皮提取物实现首次出口
- 香港特区政府推出新一轮“内地专题实习计划”
- 短讯!信维通信董秘回复:LCP作为公司重点拓展的新业务,公司已经给部分高端耳机厂商提供LCP振膜产品
- 全球热点评!宝宝包茎多大可以手术_宝宝包茎过长几岁可以手术
- 世界热议:韩国舞王张佑赫_韩国舞王
- 如何使用多米诺骨牌作为派对主题
- 环球快报:长沙72岁老人做“门童”二十年,掌握五国问候语也常收获感动
- 黄冈小状元作业本六年级数学上册r版答案 黄冈小状元作业本六年级数学上-世界最新