精品视频在线免费观看_国产精品资源网_欧美日韩亚洲综合在线_自拍视频国产精品

原創(chuàng)生活

國內(nèi) 商業(yè) 滾動

基金 金融 股票

期貨金融

科技 行業(yè) 房產(chǎn)

銀行 公司 消費

生活滾動

保險 海外 觀察

財經(jīng) 生活 期貨

當(dāng)前位置:行業(yè) >

使用 Spring Cloud Bus 在微服務(wù)之間傳遞消息示例

文章來源:騰訊云  發(fā)布時間: 2023-04-21 16:28:34  責(zé)任編輯:cfenews.com
+|-


(資料圖片)

下面是一個完整的示例,演示如何使用 Spring Cloud Bus 在微服務(wù)之間傳遞消息。該示例包含兩個微服務(wù),一個是消息發(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ù)消息類型過濾消息。當(dāng)有符合條件的消息到達(dá)時,handleMessage() 方法會被自動調(diào)用,處理接收到的消息。

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

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

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

當(dāng)消息到達(dá)時,消息接收者會打印消息內(nèi)容,如下所示:

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

關(guān)鍵詞:

專題首頁|財金網(wǎng)首頁

投資
探索

精彩
互動

獨家
觀察

京ICP備2021034106號-38   營業(yè)執(zhí)照公示信息  聯(lián)系我們:55 16 53 8 @qq.com  財金網(wǎng)  版權(quán)所有  cfenews.com
主站蜘蛛池模板: 国产精品毛片a∨一区二区三区|国| 欧美精品手机在线| 日本一区高清在线视频| 日韩一区在线视频| 国产精品欧美久久| 国产精品久久久久久久久电影网 | 日韩中文字幕在线不卡| 亚洲熟妇av日韩熟妇在线| 国产欧美日韩中文| 日韩在线免费视频V| 一区二区三区四区欧美| 欧美在线视频一二三| 久久久久欧美| 久久中文字幕视频| 国产精品96久久久久久| 久久精品国产精品| www.日本久久久久com.| 尤物一区二区三区| 亚洲欧美国产不卡| 日韩人妻无码精品久久久不卡| 久久久久久久久久久99| 中文字幕在线观看一区二区三区| 精品中文字幕在线观看| 国产精品 日韩| 美日韩精品免费观看视频| 久久精品99| 久久久亚洲福利精品午夜| 久久99精品久久久久子伦| 欧美日韩一区二区在线免费观看| 精品国产拍在线观看| 国产在线精品91| 国产日韩中文字幕| 精品无人区一区二区三区| 日本国产高清不卡| 国产成人一区三区| 久久久久久久久久久99| 日韩暖暖在线视频| 国产精品高清网站| 国产精品一区二区性色av| 国产精品观看在线亚洲人成网| 天天综合五月天|