<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
上一章的springcloud Bus是對分散式微服務的遠端設定,但是有一個遺留的問題就是,Config使用者端對遠端設定的重新整理需要手動使用post請求來完成,這就使得Config使用者端動態重新整理變得十分麻煩。於是訊息匯流排springcloud Bus就是來解決這個問題的
在微服務架構的系統中,通常會使用輕量級的訊息代理來構建一個共用的訊息主題,並讓系統中所有微服務範例都連結上來。由於該主題中產生的訊息都會被所有範例監聽和消費,所以稱它為訊息匯流排。
所有的Config使用者端都監聽MQ中同一個topic(預設是SpringCloudBus)。當一個服務重新整理資料的時候,它會把這個資訊放入到Topic中,這樣其他監聽同一Topic的服務就能得到通知,然後去更新自身的設定。
由於springcloud Bus支援兩種訊息的代理(RabbitMQ和kafka),於是接下來的demo選擇使用RabbitMQ 3.7.14,其他的訊息中介軟體Bus暫不支援
第一步: 下載安裝Erlang,地址:傳送門,安裝除了自定義安裝路徑外,一路next即可
第二步: 設定環境變數,新建一個環境變數命名為ERLANG_HOME,值為Erlang的安裝路徑
path環境中新增 %ERLANG_HOME%bin
第三步: win + R 輸入cmd回車,鍵入命令erl測試設定是否成功
第一步: 這裡以RabbitMQ 3.7.14為例,地址:傳送門,頁面的最下方有下載的地方,安裝除了自定義安裝路徑外,一路next即可
第二步: 設定環境變數,新建一個環境變數命名為RABBITMQ_SERVER,值為RabbitMQ的安裝路徑
path環境中新增 %RABBITMQ_SERVER%sbin
第三步: 安裝管理工具RabbitMQ-Plugins,win + R 輸入cmd回車,鍵入命令
rabbitmq-plugins enable rabbitmq_management
第四步: 第三部安裝的管理工具會安裝幾個RabbitMQ的管理快捷方式,可以點選win鍵檢視,點選即可執行對應操作
第五步: 測試是否安裝成功,瀏覽器http://localhost:15672(預設賬號:guest,密碼:guest),登入RabbitMQ的管理頁就表示已經安裝成功
Bus動態重新整理有兩種設計思想,第一種利用訊息匯流排觸發一個使用者端的bus/refresh,從而重新整理這條匯流排上的所有使用者端設定;第二種利用訊息匯流排觸發一個伺服器端ConfigServer的bus/refresh,從而重新整理這個設定中心(伺服器端)上註冊的所有使用者端設定。
以上兩種思想並不是都有應用,而是選擇了第二種,因為第一種設計思想會使得被選中的伺服器端節點在設定獲取職責之外新增設定重新整理的職責,這會打破微服務的職責單一性和各節點之間的對等性。且一旦被選中的節點失效,設定重新整理也將會隨之失效,這條匯流排上的伺服器端依舊無法實時獲取到最新的設定。
此時設定相關微服務一共有三個,它們是設定中心伺服器端3344、使用者端3355、使用者端3366,全域性廣播的程式碼實現需要對三個微服務都進行設定
設定中心3344: pom檔案和組態檔
<!--新增訊息匯流排RabbitMQ支援--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency>
spring:
#rabbitmq相關設定
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
##rabbitmq相關設定,暴露bus重新整理設定的端點 SpringCloud Bus動態重新整理全域性廣播
management:
endpoints: #暴露bus重新整理設定的端點
web:
exposure:
include: 'bus-refresh'
使用者端3355、3366: pom檔案和組態檔
<!--新增訊息匯流排RabbitMQ支援--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency>
spring:
#rabbitmq相關設定
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
以3366為例,組態檔的縮排如下
server:
port: 3366spring:
application:
name: config-client
cloud:
config:
uri: http://localhost:3344 #設定中心的地址
label: master #分支名稱
name: config #組態檔名稱
profile: dev #讀取字尾名稱 上述三個綜合http://localhost:3344/master/config-dev.yml
#rabbitmq相關設定
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
#服務註冊到eureka地址
eureka:
client:
service-url:
#設定與eureka server互動的地址查詢服務和註冊服務都需要依賴這個地址
defaultZone: http://localhost:7001/eureka #單機版# 暴露監控端點 否則 curl -X POST "http://localhost:3355/actuator/refresh" 不可使用
management:
endpoints:
web:
exposure:
include: "*"
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45