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

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

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

    我們將創(chuàng)建兩個微服務(wù):一個是 Order Service,另一個是 Product Service。這兩個服務(wù)將使用 Spring Cloud Bus 和 RabbitMQ 來進(jìn)行消息傳遞。

    Order Service

    首先,讓我們來創(chuàng)建 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);    }}

    這個應(yīng)用程序使用 @EnableBinding 注解將 Sink綁定到它的消息代理上。它還使用 @StreamListener 注解來指定消息處理方法。

    在 Order Service 中,我們還定義了一個 /order REST 端點(diǎn)。當(dāng)該端點(diǎn)被調(diào)用時,應(yīng)用程序會向消息代理發(fā)送一條消息。該消息將被 Product Service 接收并處理。

    Product Service

    接下來,讓我們來創(chuàng)建 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);    }}

    這個應(yīng)用程序使用 @EnableBinding 注解將 Source 綁定到它的消息代理上。它還定義了一個 /product REST 端點(diǎn),該端點(diǎn)用于添加新產(chǎn)品。

    當(dāng) /product 端點(diǎn)被調(diào)用時,Product Service 會向消息代理發(fā)送一條消息,該消息將被 Order Service 接收并處理。

    4.3 運(yùn)行示例

    我們已經(jīng)創(chuàng)建了 Order Service 和 Product Service,接下來讓我們運(yùn)行它們并查看消息傳遞的結(jié)果。

    首先,我們需要啟動 RabbitMQ 服務(wù)器。然后,我們可以使用以下命令分別啟動 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)

    當(dāng)這兩個服務(wù)都已經(jīng)啟動時,我們可以通過訪問 Order Service 的 /order 端點(diǎn)和 Product Service 的 /product 端點(diǎn)來測試它們之間的消息傳遞。

    在 Order Service 的控制臺輸出中,我們應(yīng)該能夠看到類似以下內(nèi)容的消息:

    Received message: Product added: {product name}

    這表明 Product Service 成功地向 Order Service 發(fā)送了一條消息,并且 Order Service 成功地接收并處理了該消息。

    標(biāo)簽:

    相關(guān)閱讀

    精彩推薦

    相關(guān)詞

    推薦閱讀

    国产亚洲精品观看91在线| 亚洲人成在线精品| 亚洲一级在线观看| 久久国产亚洲电影天堂| 国产成人精品日本亚洲专区| 国产大陆亚洲精品国产| 亚洲AV永久无码精品一福利 | 国产亚洲大尺度无码无码专线 | 亚洲jizzjizz少妇| 亚洲狠狠色丁香婷婷综合| 亚洲乱码日产精品一二三| 亚洲综合小说另类图片动图| 亚洲人xxx日本人18| 亚洲kkk4444在线观看| 亚洲一区AV无码少妇电影| 亚洲色www永久网站| 亚洲日韩乱码中文字幕| 亚洲爆乳无码专区www| 亚洲Aⅴ在线无码播放毛片一线天| 亚洲日韩亚洲另类激情文学| 亚洲1区2区3区精华液| 天天综合亚洲色在线精品| 亚洲国产免费综合| 国产亚洲色婷婷久久99精品91| 亚洲熟妇无码乱子AV电影| 亚洲AV永久精品爱情岛论坛| 亚洲欧洲日产国码久在线观看 | 国产大陆亚洲精品国产| 亚洲精品天堂成人片?V在线播放| 亚洲一级特黄大片无码毛片| 亚洲精品少妇30p| 亚洲男人第一av网站| 亚洲一区二区三区深夜天堂| 亚洲熟妇av午夜无码不卡| 国产精品亚洲一区二区三区久久| 亚洲真人日本在线| 久久精品亚洲视频| 亚洲国色天香视频| 亚洲国产成人综合精品| 亚洲男人的天堂一区二区| 亚洲国产精品SSS在线观看AV|