我们将创建两个微服务:一个是 Order Service,另一个是 Product Service。这两个服务将使用 Spring Cloud Bus 和 RabbitMQ 来进行消息传递。
【资料图】
首先,让我们来创建 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。
@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 接收并处理。
我们已经创建了 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 成功地接收并处理了该消息。
以下是青木股份在北京时间4月17日11:14分盘口异动快照:4月17日,青木股份盘中跌幅达5%,截至11点14分,报51 74元,成交1 40亿元,换手率11 46
据“外交部领事司”微信公众号消息,4月15日,苏丹首都喀土穆及多地爆发武装部队间冲突,喀土穆国际机场航班中断,当地安全形势严峻。外交部立
1、所谓潜在进入者(PotentialEntrants),可能是一个新办的企业,也可能是一个采用多角化经营战略的原
核心观点:利好政策陆续落地,山东城投仍处于修复中。选取临沂、日照、泰安为样本。中等能级区域城投债的利差仍跟随大势,但也存在一定利差空
海上风电向深海迈进---在“双碳”目标指引下,全球能源结构重塑,海上风电成为我国推进能源转型的重要抓手。
中评社香港3月22日电 2月28日,香港特区政府宣布从3月1日起将取消历时近千日的“口罩令”,标志着所有新冠病毒的防疫措施正式落下帷幕,香
1、最简单的读发就是G拼音ji四声J拼音zhei四声多听磁带里的读音自然而然就能分清了索性按汉语拼音粗略地
1、Iphone4s联通卡彩信设置方法等原因:无需手动设置,安装后即可使用彩信功能:2、4苹果旧机对于已经收发彩信的手机
你需要的东西烤盘铝箔慢炖锅保持香肠温暖,直到您准备好上桌。一块多汁、柔软的香肠可以让晚餐变得特别,而一块干燥、坚硬的香肠
中新网天津4月16日电(记者谢艺观)社会治理的“最后一公里”在社区、在乡村。如何让村庄管理更高效,让社区服务更深入,天津提供了基层治理示范
X 关闭
X 关闭