配置Spring Cloud Bus并集成消息代理示例

来源:腾讯云 时间:2023-04-16 20:44:15

我们将创建两个微服务:一个是 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 成功地接收并处理了该消息。

上一篇:

下一篇:

X 关闭

配置Spring Cloud Bus并集成消息代理示例

我们将创建两个微服务:一个是OrderService,另一个是ProductService。这两个服务将使用SpringCloudBus和Ra

2023-04-16

称在上海做20年月嫂的妈妈存款有482万,当事人:纯属吹牛

近日,张女士表示自己偶然登录母亲银行账户,发现余额竟有482万元,引发广泛关注。16日,据九派新闻微博援引“巨流视频”报道,当事女子称此事

2023-04-16

菲亚特菲翔油耗高吗_菲亚特菲翔油耗

1、我基本在6 8左右,最高7 4最低6 3但是我开了这么久以来,觉得它的挂挡很不好。2、倒挡会挂不上,很没有手感,

2023-04-16

【全球聚看点】菜鸟与巴西邮政签署战略合作协议,加速优化国际快递时效

北京时间4月12日,菜鸟与巴西邮政(以下简称“巴邮”)在杭州签署战略合作协议,双方将深化国际快递、物流科技等领域的合作,全面加强国际快递

2023-04-16

韩国出口去年全球市占率2.7%,创2008年来新低

App4月16日消息,据报道,随着韩国出口低迷不振,2022年韩国在国际出口市场的占有率创下2008年全球金融危机以来最低水平。据世贸组织(WTO)和

2023-04-16

【记者周末探景区】“被绿波荡漾的茶海治愈了”

多彩贵州网讯(本网记者彭典)4月15日,记者走进遵义市湄潭县永兴镇的中国茶海景区,一汪绿波荡漾,流淌着醉人的茶香。湄潭县永兴镇的中国茶海景

2023-04-16

13个粮食主产省份“全险”逐步覆盖产粮大县

农业保险是分散农业生产经营风险的重要手段。今年中央一号文件提出,“逐步扩大稻谷小麦玉米完全成本保险和种植收入保险实施范围

2023-04-16

梦撩思宇_关于梦撩思宇简述 世界即时

1、内容简介2、《梦撩思宇》收录了十三首陈思宇音乐作品,首首真情演绎直达心灵深处,她天籁般的声音,温柔和浪漫的全新深情演绎,有着另一种

2023-04-16

全球报道:苏州园林课文说明方法有哪些句子_苏州园林课文说明方法

1、作比较原句:我国的建筑,从古代的宫殿到近代的一般住房,绝大部分是对称的,左边怎么样,右边也怎么样。2、苏州园林可绝不

2023-04-16

全球快资讯丨31轮39分,切尔西创造队史自93/94赛季来英超同期最低积分纪录

英超第31轮,切尔西主场1-2布莱顿。在本赛季英超第31轮后,切尔西仅积39分。根据统计,本赛季切尔西的英超积分数是自1993 94赛季以来,队史同

2023-04-16

Copyright   2015-2022 起点科技网版权所有   备案号:皖ICP备2022009963号-12   联系邮箱: 39 60 29 14 2@qq.com