日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

SpringCloud Stream使用解析

瀏覽:21日期:2023-07-18 14:24:32
SpringCloudStream

官方定義Spring Cloud Stream 是一個構建消息驅動微服務的框架。應用通過inputs和outputs來與Spring Cloud Stream中binder對象交互。通過我們配置來binding(綁定),而Spring Cloud Stream中的binder對象負責與消息中間件交互。所以,我們只需要搞清楚如何與Spring Cloud Stream 交互就可以方便使用消息驅動的方式。通過使用Spring Integration來連接消息代理中間件以及實現消息事件驅動。目前僅支持RabbitMQ和kafka

下面用RabbitMQ來說明使用!案例之消息驅動之生產者

1.建一個項目,并添加如下的依賴:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-stream-rabbit</artifactId> </dependency>

2.編寫下面的yml文件

server: port: 8801spring: application: name: cloud-stream-provider rabbitmq: host: 192.168.43.76 port: 5672 username: guest password: guest cloud: stream: binders: # 在此處配置要綁定的rabbitmq的服務信息; defaultRabbit: # 表示定義的名稱,用于于binding整合 type: rabbit # 消息組件類型# environment: # 設置rabbitmq的相關的環境配置,(本機方式)# spring:# rabbitmq:#host: localhost#port: 5672#username: guest#password: guest bindings: # 服務的整合處理 output: # 這個名字是一個通道的名稱 destination: studyExchange # 表示要使用的Exchange名稱定義 content-type: application/json # 設置消息類型,本次為json,文本則設置“text/plain” binder: defaultRabbit # 設置要綁定的消息服務的具體設置(爆紅不要管)eureka: client: # 客戶端進行Eureka注冊的配置 service-url: defaultZone: http://localhost:7001/eureka instance: lease-renewal-interval-in-seconds: 2 # 設置心跳的時間間隔(默認是30秒) lease-expiration-duration-in-seconds: 5 # 如果現在超過了5秒的間隔(默認是90秒) instance-id: send-8801.com # 在信息列表時顯示主機名稱 prefer-ip-address: true # 訪問的路徑變為IP地址

3.編寫service,下面僅展示實現類:

import org.lzl.springcloud.service.IMessageProvider;import org.springframework.cloud.stream.annotation.EnableBinding;import org.springframework.cloud.stream.messaging.Source;import org.springframework.messaging.MessageChannel;import org.springframework.messaging.support.MessageBuilder;import javax.annotation.Resource;import java.util.UUID;//注意這里不需要寫@Service,因為該service是跟rabbitmq打交道的@EnableBinding(Source.class)//定義消息的推送管道public class MessageProviderImpl implements IMessageProvider { @Resource private MessageChannel output; @Override public String send() { String serial = UUID.randomUUID().toString(); output.send(MessageBuilder.withPayload(serial).build()); System.out.println('*****serial:'+serial); return null; }}

4.編寫controller

import org.lzl.springcloud.service.IMessageProvider;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;@RestControllerpublic class SendMessageController { @Resource private IMessageProvider messageProvider; @GetMapping(value = '/sendMessage') public String sendMessage(){ return messageProvider.send(); }}案例之消息驅動消費者

1.寫pom,加上下面的依賴

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-stream-rabbit</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>

2.編寫yml,和生產者唯一的區別在于,下面是input

server: port: 8802spring: application: name: cloud-stream-consumer rabbitmq: host: 192.168.43.76 port: 5672 username: guest password: guest cloud: stream: binders: # 在此處配置要綁定的rabbitmq的服務信息; defaultRabbit: # 表示定義的名稱,用于于binding整合 type: rabbit # 消息組件類型# environment: # 設置rabbitmq的相關的環境配置# spring:# rabbitmq:#host: localhost#port: 5672#username: guest#password: guest bindings: # 服務的整合處理 input: # 這個名字是一個通道的名稱 destination: studyExchange # 表示要使用的Exchange名稱定義 content-type: application/json # 設置消息類型,本次為對象json,如果是文本則設置“text/plain” binder: defaultRabbit # 設置要綁定的消息服務的具體設置eureka: client: # 客戶端進行Eureka注冊的配置 service-url: defaultZone: http://localhost:7001/eureka instance: lease-renewal-interval-in-seconds: 2 # 設置心跳的時間間隔(默認是30秒) lease-expiration-duration-in-seconds: 5 # 如果現在超過了5秒的間隔(默認是90秒) instance-id: receive-8802.com # 在信息列表時顯示主機名稱 prefer-ip-address: true # 訪問的路徑變為IP地址

3.編寫controller,該controller不向外界暴露端口,起到實時監控消息管道的作用!

import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.stream.annotation.EnableBinding;import org.springframework.cloud.stream.annotation.StreamListener;import org.springframework.cloud.stream.messaging.Sink;import org.springframework.messaging.Message;import org.springframework.stereotype.Component;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;@Component@EnableBinding(Sink.class)public class ReceiveMessageListenerController { @Value('${server.port}') private String serverPort; @StreamListener(Sink.INPUT)//只要8801發送消息,8802就會接收到8801的消息 public void input(Message<String> message){ System.out.println('消費者1號--------》接收到的消息:'+message.getPayload()+'t port: '+serverPort); }}測試

啟動rabbitMQ和上面的兩個項目,訪問http://localhost:8801/sendMessage在消費者的控制臺中就會出現下面的訂單流水號:

SpringCloud Stream使用解析

補充說明

我們打開rabbitmq的監控界面:發現默認是幫我們分組的

SpringCloud Stream使用解析

想要自定義分組只需要在消費者的yml文件中加上下面的一行:

SpringCloud Stream使用解析

如果有多個消費者,為了避免出現重復消費的問題,應將組名設置成一樣的。一個組的成員輪循消費,不同組的成員進行相同的消費。

到此這篇關于SpringCloud Stream介紹的文章就介紹到這了,更多相關SpringCloud Stream介紹內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
福利在线一区| 久久只有精品| www.九色在线| 成人在线超碰| 国产亚洲电影| 国产一区二区色噜噜| 福利一区二区三区视频在线观看| 精品久久电影| 999国产精品永久免费视频app| 久久精品主播| 在线一区电影| 亚洲综合图色| 你懂的亚洲视频| 日韩免费av| 午夜一区在线| 欧美欧美黄在线二区| 麻豆一区二区在线| 久久蜜桃精品| 日本一区二区三区中文字幕| 色8久久久久| 精品少妇av| 午夜在线精品偷拍| 婷婷成人av| 日韩精品诱惑一区?区三区| 亚洲一区不卡| 精品国产精品国产偷麻豆| 狠狠爱www人成狠狠爱综合网| 日韩中文字幕一区二区高清99| 国产精品日韩精品在线播放 | 黄色网一区二区| 国精品一区二区| 亚洲精品第一| 中文另类视频| 欧美日韩夜夜| 亚洲欧洲一区| 91中文字幕精品永久在线| 日韩中文字幕1| 成人av三级| 国产精品videossex| 国产一区白浆| 亚洲午夜一级| 欧美日韩国产观看视频| 久久av电影| 日韩av一二三| 亚洲精品伊人| 国产精品婷婷| 在线观看精品| 麻豆视频在线看| 国产精品第一国产精品| 久久三级福利| 国产乱码精品一区二区三区四区| 91一区二区三区四区| 国产精品一国产精品k频道56| 亚洲精品麻豆| 免费一级片91| 一区在线视频观看| 亚洲高清久久| 亚洲精品在线观看91| 99久久精品费精品国产| 中文在线а√在线8| 日韩成人精品一区| 国产精品videossex久久发布| 日韩国产在线不卡视频| 日韩精品免费视频一区二区三区| 欧美专区一区二区三区| 日韩精品一级二级| 亚洲精品第一| 国产精品99精品一区二区三区∴| 国产毛片精品| 国产高清亚洲| 国产成人精选| 日韩欧美一区二区三区在线视频 | 亚洲国产日韩欧美在线| 99国内精品| 日韩精品免费一区二区夜夜嗨| 亚洲一卡久久| 日韩av一二三| 国产精品黑丝在线播放| 亚洲国产专区校园欧美| 中文字幕一区二区精品区| 日本久久一区| 亚洲综合电影| 在线精品国产亚洲| 麻豆视频一区| 亚洲国产成人精品女人| 日韩国产91| 激情视频网站在线播放色 | 精品一区二区三区在线观看视频| 免费在线观看一区| 韩日一区二区| 中文国产一区| 精品资源在线| 色吊丝一区二区| 日韩中文字幕在线一区| 国产精品久久久网站| 桃色一区二区| 欧美一区免费| 久久国产精品成人免费观看的软件| 亚洲黄页一区| 精品欧美日韩精品| 亚洲一区有码| 黑丝美女一区二区| 国产成人免费| 日韩高清二区| 日韩美女一区二区三区在线观看| 亚洲三区欧美一区国产二区| 国产不卡av一区二区| 久久福利毛片| 日韩高清欧美| 国产精品a级| 亚洲香蕉视频| 天堂资源在线亚洲| 精品日产乱码久久久久久仙踪林| 日本一区二区三区中文字幕| 伊人精品一区| 久久亚州av| 久久的色偷偷| 亚洲精品系列| 国产99久久| 国产激情欧美| 欧美激情视频一区二区三区免费| 中文无码日韩欧| 美女精品在线| 亚洲一区二区毛片| 影音先锋国产精品| 欧美日韩水蜜桃| 久久久精品久久久久久96 | 青草久久视频| 在线观看视频免费一区二区三区| 免费在线小视频| 久久久久国产精品一区三寸 | 狠狠干成人综合网| 亚洲高清久久| 亚洲在线电影| 亚洲a级精品| 日韩精品视频网站| 日韩中文一区二区| 国产日韩中文在线中文字幕| 日韩不卡一二三区| 久久中文字幕一区二区三区| 国产精品欧美在线观看| 日韩大片在线播放| 欧美日韩一区二区综合| 久久国产88| 欧美亚洲免费| 久久国产视频网| 国产精品色在线网站| 成人在线免费观看网站| 成人羞羞视频播放网站| 亚洲欧洲另类| 国产精品二区影院| 欧美日韩亚洲在线观看| 亚洲综合福利| 精品一区二区三区中文字幕视频| 久久久久久自在自线| 香蕉久久久久久久av网站| 91精品国产自产在线丝袜啪| 成人午夜毛片| 中文视频一区| 日韩在线看片| 亚洲一级大片| 免费一二一二在线视频| 日韩三级视频| 国产在线日韩| 久久精品国产999大香线蕉| 久久xxxx精品视频| 吉吉日韩欧美| 国产美女久久| 亚洲一区二区网站| 日韩在线不卡| 国产欧美一区二区三区米奇| 精品一区在线| 精品国产一级| 欧美在线91| 99国产一区| 日韩精品91| 久久久亚洲欧洲日产| 婷婷亚洲精品| 午夜在线一区二区| 国产伊人精品| 九色porny丨国产首页在线| 欧美国产不卡| 奇米色欧美一区二区三区| 亚洲欧美日韩视频二区| 日韩免费看片| 日韩中文影院| 高清日韩中文字幕| 国产日韩欧美三级| 亚洲综合欧美| 一区二区自拍| 亚洲精品va| 亚洲制服一区| 日韩精品乱码av一区二区| 国产精品免费看| 在线精品小视频| 午夜欧美精品| 免费日韩av片| 亚洲精品无吗| 国产亚洲一区| 精品国产一区二区三区2021|