国产传媒18精品免费观看,欧美人妻精品一区二区三区,999热线在线观看,www四虎最新成人永久网站

使用 Spring Cloud Bus 在微服務之間傳遞消息示例|全球最新

首頁 > 資訊 > > 正文

日期:2023-04-22 12:55:43    來源:騰訊云    


【資料圖】

下面是一個完整的示例,演示如何使用 Spring Cloud Bus 在微服務之間傳遞消息。該示例包含兩個微服務,一個是消息發(fā)送者,另一個是消息接收者。

首先,我們需要創(chuàng)建一個 Spring Boot 項目,并添加 Spring Cloud Bus 和 RabbitMQ 的依賴。在 pom.xml 文件中添加以下依賴:

    org.springframework.cloud    spring-cloud-starter-bus-amqp    2.2.1.RELEASE    org.springframework.boot    spring-boot-starter-web    2.2.1.RELEASE    org.springframework.boot    spring-boot-starter-amqp    2.2.1.RELEASE

在創(chuàng)建的項目中,我們定義了一個消息類型 MyMessage,該類型包含一個字符串類型的 content 屬性。

javaCopy codepublic class MyMessage implements Serializable {    private static final long serialVersionUID = 1L;    private String content;    public MyMessage(String content) {        this.content = content;    }    public String getContent() {        return content;    }    public void setContent(String content) {        this.content = content;    }}

然后,我們創(chuàng)建了一個消息發(fā)送者,該發(fā)送者使用 Spring Cloud Bus 發(fā)送消息。

@RestControllerpublic class MyController {    @Autowired    private MessageSender messageSender;    @PostMapping("/send")    public void sendMessage(@RequestBody MyMessage message) {        messageSender.sendMessage(message);    }}@Servicepublic class MessageSender {    private static final Logger LOGGER = LoggerFactory.getLogger(MessageSender.class);    @Autowired    private MessageChannel output;    public void sendMessage(MyMessage message) {        LOGGER.info("Sending message: {}", message.getContent());        output.send(MessageBuilder.withPayload(message).build());    }}@Servicepublic class MessageListener {    private static final Logger LOGGER = LoggerFactory.getLogger(MessageListener.class);    @StreamListener(target = Sink.INPUT, condition = "headers["type"]=="MyMessage"")    public void handleMessage(MyMessage message) {        LOGGER.info("Received message: {}", message.getContent());    }}

在這個例子中,我們創(chuàng)建了一個 MyController 類,該類定義了一個發(fā)送消息的 API 接口,接收一個 MyMessage 類型的參數(shù),將參數(shù)傳遞給 MessageSender 類的 sendMessage() 方法。

MessageSender 類定義了一個 sendMessage() 方法,該方法使用 Spring Cloud Stream 的 output 消息通道發(fā)送消息。

MessageListener 類定義了一個 handleMessage() 方法,該方法使用 @StreamListener 注解監(jiān)聽 Spring Cloud Stream 的 input 消息通道,并根據(jù)消息類型過濾消息。當有符合條件的消息到達時,handleMessage() 方法會被自動調用,處理接收到的消息。

在以上代碼中,我們使用了 @Autowired 注解自動注入了 MessageSender 和 MessageListener 類,這是 Spring Boot 自帶的依賴注入功能。

運行應用程序后,我們可以使用 Postman 工具或其他 HTTP 工具發(fā)送 HTTP POST 請求,將消息發(fā)送到消息發(fā)送者的 API 接口,如下所示:

POST http://localhost:8080/send HTTP/1.1Content-Type: application/json{    "content": "Hello, World!"}

當消息到達時,消息接收者會打印消息內容,如下所示:

2023-04-19 09:24:47.836  INFO 29740 --- [afka-listener-1] com.example.demo.M

關鍵詞:

下一篇:斯諾克90后挑大梁?或占據(jù)4席8強,囧哥對31冠王,5虎全軍覆沒?_世界要聞
上一篇:最后一頁

科技

 
欧美精品国产综合久久| 少妇脱了内裤让我添| 色欲av午夜一区二区三区| 亚洲v无码一区二区三区四区观看| 一本一道av无码中文字幕﹣百度| 惨遭蹂躏的大学校花| 亚洲国产精品久久人人爱| 偷偷藏不住小说免费阅读| 欧美孕交alscan巨交xxx| 欧美老肥婆牲交videos| 无码无套少妇毛多18P| 18禁美女裸身无遮挡免费网站| 女人被添全过程a片试看v| 欧美色视频日本片免费| 色精阁久艾草国产www| 老师你的真嫩真紧av視頻| 宝贝在街上把奶露出来h| 久久人人爽人人爽人人片av| 波多野结衣绝顶大高潮| 国产精品美女久久久久久久| 中文字幕av人妻一本二本| 女性高爱潮AAAA级视频免费| 亚洲午夜av久久久精品影院色戒| 天天躁夜夜躁狠狠躁av乐播蜜桃| 久久人人添人人爽添人人片av| 亚洲AV 无码片一区二区三区| 欧美顶级少妇做爰hd| 粗一硬一长一进一爽一a级小说| 日本做床爱全过程激烈视频| 色天天综合色天天久久婷婷| 55岁大妈玩csgo| 男人tv天堂精品一区二区| 久久久久亚洲av无码专区网站| 天堂√在线中文资源网| 人妻少妇被猛烈进入中文字幕| 最近韩国日本免费高清观看| 国产精品无码成人午夜电影| 高h喷水荡肉自慰爽文np| 51久久成人国产精品麻豆| 韩国三级激情理论电影| 色哟哟网站在线观看|