配置Spring Cloud Bus并集成消息代理示例
我们将创建两个微服务:一个是OrderService,另一个是ProductService。这两个服务将使用SpringCloudBus和Ra
我们将创建两个微服务:一个是 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 成功地接收并处理了该消息。
关键词:
我们将创建两个微服务:一个是OrderService,另一个是ProductService。这两个服务将使用SpringCloudBus和Ra
1、这个你该去他的论坛或者微信群什么的找。本文到此分享完毕,希望对大家有所帮助。
1、arthyly2、apobico3、mt数码配件4、FARPU5、pingcon6、oahe7、世擎8、圣狄豹9、博
七国集团气候、能源及环境部长会议于4月16日闭幕。各成员国就汽车领域二氧化碳减排目标达成了一致,即各成员国根据本国的汽车保有量,在2035年
阿根廷的"微笑天使",可能是足坛最不幸的球员,阿根廷,马德里竞技,马丁内斯,迭戈·西蒙尼,安东尼奥·弗洛雷斯,科雷亚
15日,“2023第六届苏州·金鸡湖双年展”在苏州工业园区开幕,展出来自世界各地的2000余件作品。这是苏州近年来规模最大、国际化程度最高的美
磁力链接一般是以magnet:?xt=urn:btih:开头的。磁力链接是对等网络中进行信息检索和下载文档的电脑程序。磁力链接不基于文档的IP地址或定位符
1 首先,将螃蟹放入一个大盆中,加入适量的温水,水温一般在30℃左右,可以加入一些料酒或白醋来洗去螃蟹体表残留的细菌。2 捏住螃蟹腹部,用
此次发射的风云三号G星是我国第二代低轨气象卫星系列风云三号的第7颗卫星,据《环球时报》记者了解,这颗卫星在国际首次采用双频主动降水测量
消费是拉动经济增长的主要动力,如何激发消费活力?4月15日,记者从省政府获悉,我省日前印发了《进一步促进消费若干政策措施的通知》(以下简
外线失准!穆雷25投10中得到24分8板6助三分6投0中!,老鹰,安迪·穆雷,nba季后赛,中国网球赛事,波士顿凯尔特人,中国网球公开赛,奥林匹克运动会
天蝎就是他不想说的话你怎么问他,他也不说你要一直问他还会烦你,觉得你逼他。可是这不代表你不想说的话,他就不会问你。因为天蝎这个人的窥
4月14日,2023成渝双城台湾青年企业家交流合作恳谈会在重庆举行。
央视网消息:今天(4月15日)是第八个全民国家安全教育日,昨天,北京市公安局办公室联合北京市消防救援总队等单位合作推出的“平安有我”安全
自去年《中共中央国务院关于构建数据基础制度更好发挥数据要素作用的意见》(数据二十条)对外发布以来,我国数据流通市场迎来
4月14日,载有5000余吨化肥的“中谷X”轮顺利抵达新港码头,这些化肥将从广州陆路运往全国各地。为保障春耕物资的顺利抵达,广州海事部门主动
如果你想送她一个小礼物,可以是一个她喜欢的东西。如果她喜欢动漫,那就送她一本书。如果她喜欢动漫,可以送她一些电脑周边产品
家是最小国,国是千万家,维护国家安全,人人有责,人人可为。今年4月15日是第八个全民国家安全教育日,今年的活动主题是“贯彻总体国家安全观
《翦商》的作者李硕认为《周易》主要不是用来占卜的,而是周文王写的一本历史书。
欢迎观看本篇文章,小升来为大家解答以上问题。想望丰采是什么意思,想望丰采的意思很多人还不知道,现在让我们一起来看看吧!1