【世界速看料】配置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 成功地接收并处理了该消息。
关键词:
责任编辑:meirong
-
【世界速看料】配置Spring Cloud Bus并集成消息代理示例
-
世界消息!五一假期火车票今日开抢!热门线路火爆,网友称“一票难求”
-
天天资讯:高萌_关于高萌简述
-
报道:血小板升高会导致什么后果_血小板升高怎么办
-
环球消息!腾讯手机号码标注怎么设置_腾讯手机号码标注
-
世界百事通!金枪不倒药10粒装蚁力神_金枪不倒药10粒装
-
世界热点!2023 款哈弗赤兔 SUV 上市,8.28 万-12.8 万元
-
【当前独家】兰帕德:我依然会大胆的启用年轻球员,他们应该时刻做好准备
-
天天最资讯丨太阳高度角的计算公式怎么得出_太阳高度角的所有计算公式
-
观焦点:遂宁船山用科技赋能 打造川白芷规范化种植基地
-
天天快看:使用Zuul实现静态资源管理
-
微资讯!轴距2848mm,不到16万起,降至良心价仍不火,标致508L输在哪里?
-
全球滚动:Spring Cloud Gateway监控配置示例
-
世界时讯:桂林旅游:去年归母净亏损2.82亿元 今年呈现良好复苏态势
-
当前资讯!公司员工报销医药费会计_员工报销医药费会计分录
-
最资讯丨根据赛制国安在第一阶段的比赛终被分到了B组
-
环球新动态:印尼爪哇岛强震 官方称“没有引发海啸的可能”
-
天天新动态:管道警示牌被村民放倒 海淀城管现场普法并要求恢复
-
每日讯息!睾丸女性化是天生的吗_睾丸性女性症候群
-
天天热文:大陆正常航天活动“影响台北飞行情报区”?国台办回应
-
快看点丨女性朋友生日送什么花
-
焦点热议:华硕显卡助力Ai加速 创造独特纹理人物
-
环球消息!这不是汉字营救师傅怎么过 关卡通关攻略
-
天天资讯:上海银保监局:进一步提高新发放公司类贷款中的民营企业贷款比重
-
全球视讯!国家林草局部署森林草原防火工作
-
全球观焦点:「ChatGPT最强竞品」爆火,不限量不要钱免注册,一手实测体验在此
-
环球微速讯:糖酒会探馆汾酒|“青花宝宝”迎客,中式鸡尾酒你尝过没?
-
快讯:黑石宣布完成房地产基金募资 金额达304亿美元
-
环球快消息!锂电池概念反弹走高,永兴材料涨停,赣锋锂业、天齐锂业等拉升
-
世界滚动:中国留学生在英徒步时失联,中领馆回应
-
环球简讯:跨越“三十五岁就业门槛”,期待各界合力
-
全球快讯:北京将实施237项改革推进数据跨境流动 优化出口退税
-
速讯:拼多多“炸店”事件背后:“仅退款”挡了谁的路?
-
全球观热点:辽宁抽查考核特殊食品企业食品安全管理人员
-
环球热资讯!甲烷排放板块4月13日涨0.22%,瀚蓝环境领涨,主力资金净流出3084.46万元