<ul id="ouw02"></ul>
  • 首頁 > 綜合 > 正文

    全球視訊!配置Spring Cloud Bus并集成消息代理示例

    2023-04-17 14:17:43來源:騰訊云  

    我們將創建兩個微服務:一個是 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 成功地接收并處理了該消息。

    標簽:

    相關閱讀

    精彩推薦

    相關詞

    推薦閱讀

    亚洲一卡2卡3卡4卡国产网站 | 亚洲AV无码一区东京热| 亚洲偷自拍另类图片二区| 亚洲色偷偷偷网站色偷一区| 亚洲一区精品无码| 亚洲最大AV网站在线观看| 中文亚洲AV片不卡在线观看| 亚洲一区AV无码少妇电影☆| 国产亚洲成归v人片在线观看| 中文字幕亚洲综合久久菠萝蜜 | 亚洲精品美女久久久久| 精品日韩亚洲AV无码| 亚洲精品视频在线观看免费 | 亚洲一级片内射网站在线观看| 亚洲成av人片在线观看天堂无码| 无码不卡亚洲成?人片| 亚洲第一福利网站在线观看| 亚洲性在线看高清h片| 亚洲欧洲日产国码无码久久99| 亚洲V无码一区二区三区四区观看 亚洲αv久久久噜噜噜噜噜 | 亚洲AⅤ男人的天堂在线观看 | 另类专区另类专区亚洲| 一区二区三区亚洲视频| 亚洲一级黄色视频| 日韩亚洲人成在线综合日本| 亚洲免费视频在线观看| 亚洲成人午夜电影| 亚洲熟女综合色一区二区三区| 亚洲人成网站在线在线观看| 国产亚洲精品欧洲在线观看| 久久久久一级精品亚洲国产成人综合AV区 | 亚洲中文字幕乱码熟女在线| 国产亚洲一卡2卡3卡4卡新区| 亚洲国产成人久久一区久久| 亚洲日韩中文字幕在线播放| 亚洲免费在线视频| 日本亚洲免费无线码| 亚洲AV无码一区二区三区鸳鸯影院| 亚洲一区视频在线播放| 亚洲国产成人久久综合碰碰动漫3d| 亚洲精品国产肉丝袜久久|