• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Springcloud-Bus部分學習筆記

    標簽: springcloud


    視頻學習地址:https://www.bilibili.com/video/BV18E411x7eT
    源碼地址:https://gitee.com/zhu_xinmiao/springcloud
    spring cloud版本:H版

    概述

    Bus是什么

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-6Pjr8iu9-1596947161962)(image-20200809095106025.png)]

    Bus的作用

    實際上就是原先Config動態刷新中,我們人工輸入的curl刷新提醒,有中間件替我們完成了。

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-SmaNjTts-1596947161966)(image-20200809095016052.png)]

    什么是總線

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-jv3bHdBY-1596947161969)(image-20200809095310414.png)]

    相當于我有一個微信公眾號,大家訂閱了我,我這一更新大家每個人都能收到這個更新。

    如果學過消息隊列(RabbitMQ、Kafka…)的話,這就相當于消息隊列的廣播模型。

    設計思想

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-5mNJonN6-1596947161972)(image-20200809101809801.png)]

    1對應的是Bus是什么標題下的圖

    相當于小道消息的廣播通知

    2對應的是Bus的作用標題下的圖

    相當于中央配置中心的廣播通知

    技術選型時我們更應該選擇后者

    實現

    前期準備

    這里使用的消息隊列是RabbitMQ,并且選用的是設計思想中的第二種方法。

    新建3366微服務,和3355搭建過程幾乎完全相同,可參考我前一篇博文config部分學習筆記中的搭建過程。

    這里唯一的區別是controller中有所不同,但和核心邏輯沒有關聯,只是為了和3355做一個輸出的區分。

    @RestController
    @RefreshScope
    public class ConfigClientController {
        @Value("${server.port}")
        private String serverPort;
    
        @Value("${config.info}")
        private String configInfo;
    
        @GetMapping("/configInfo")
        public String configInfo(){
            return "serverPort: " +serverPort+ "\t\n\n configInfo: "+ configInfo;
        }
    }
    

    搭建總線支持(全局廣播)

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-NnKvF8Lc-1596947161974)(image-20200809102834411.png)]

    改pom

    這三個微服務的pom文件中都加上

    <!--    添加消息總線RabbitMQ支持    -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    </dependency>
    

    改yml

    三個微服務中都加上,這個是spring下面一級的,一定要對齊,不懂的話可以看下我gitee中的源碼

    #spring:
        rabbitmq:
          host: localhost
          port: 5672
          username: guest
          password: guest
    

    在3344的yml中額外加上

    #暴露Bus刷新端點
    management:
      endpoints:
        web:
          exposure:
            include: "bus-refresh"
    

    這里強調一下,也算是解釋。但凡暴露端點的操作pom依賴中都要帶上以下依賴,同時bus-refresh是actuator中的操作。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    

    測試

    測試時千萬記得打開RabbitMQ,不然3355和3366會跑不起來。

    和上一篇config部分學習筆記類似,更改gitee中版本號后會發現3344刷新后直接更新了,而3355和3366沒有更新。

    與上一篇不同的是,這次我們不是單獨去給3355,3366分別post,而是直接給3344發一個post請求,來做到一處刷新,處處刷新。

    curl -X POST "http://localhost:3344/actuator/bus-refresh"
    

    刷新測試頁面后我們就可以看到,3355和3366的版本號也更新了。

    更新前:

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-dkPesJCK-1596947161976)(image-20200809120932973.png)]

    更新后:

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-42wqYdqP-1596947161977)(image-20200809121029676.png)]

    定點通知

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-6MApHfQI-1596947161978)(image-20200809121327260.png)]

    這里我們測試只通知3366,不通知3355

    3366更新前:

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-NI4Wc73d-1596947161979)(image-20200809121603495.png)]

    輸入curl -X POST "http://localhost:3344/actuator/bus-refresh/config-client:3366"。

    這里config-client來自yml中的這里

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-esX6Bngn-1596947161981)(image-20200809121823263.png)]

    3366則是端口號,組合起來就是destination中需要填的內容。

    更新后:

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Ju7hafxm-1596947161982)(image-20200809121908007.png)]

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-zq3f8wxV-1596947161983)(image-20200809121919363.png)]

    版權聲明:本文為long_long__原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/long_long__/article/details/107892444

    智能推薦

    3.Python 高級部分學習筆記

    什么是Socket socket(簡稱 套接字) 是進程間通信的一種方式。套接字類型,可以是 SOCK_STREAM(流式套接字,主要用于 TCP 協議)或者 SOCK_DGRAM(數據報套接字,主要用于 UDP 協議) 迭代器 通過迭代器,能夠完成數據的生成,而且不需要很大的存儲空間 列表的方式和迭代器的最核心的區別 列表中存儲的是數據的結果,而迭代器中存儲的是生成數據的方式 生成器 生成器是一...

    【OpenCV】學習筆記(一):基礎操作部分

    前言:跟著淺墨大神,學習OpenCV3后,筆記如下。 1 基礎知識 1.1 加載、修改、保存圖像 加載 cv::imread 保存 cv::cvtColor 保存 cv::imwrite 1.2 獲取圖像像素指針 1.3 創建滑動條 createTrackbar() 【示例】 2 常用的數據結構和函數 2.1 點:Point類 2.2 顏色:Scalar類 2.3 尺寸:Size類 2.4 矩形:...

    matlab學習筆記(二) 畫圖部分

    matlab學習筆記(二) 畫圖部分 一、最簡單的二維坐標軸圖:使用plot函數 在一張圖上繪制兩個相同長度的向量plot(x,y)。可以多一個參數指定顏色和節點符號plot(c,r,‘b-o’) 第二個’’里面設置很自由,幾個特征(點的圖案,線的類型,顏色)寫的順序可以隨意換(’or—‘,’sg:&r...

    plsql學習筆記(二)語法部分

    語法部分 一. 變量 1.變量介紹 在編寫pl/sql程序時,可以定義變量和常量;在pl/sql程序中包括有: 1)、標量類型(scalar) 2)、復合類型(composite) --用于操作單條記錄 3)、參照類型(reference) --用于操作多條記錄 4)、lob(large object) 2、標量–常用類型 定義(名 類 空否 默認值) 1)在編寫pl/sql塊時,如果...

    LoRaWan協議1.1 ClassB部分學習筆記

    LoRaWan協議1.1 ClassB部分學習筆記 目錄 8.對Class B的介紹 9.同步網絡發起下行的原理(class b獨有) 10.Class B上行幀 11. 下行ping包格式(class b獨有) 11.1 物理幀格式 11.2 單播&多播 mac消息 11.2.1 單播mac消息格式 11.2.2多播mac消息格式 12 Beacon信標的獲取和跟蹤 12.1 最小丟失信...

    猜你喜歡

    Springcloud-Gateway部分學習筆記

    文章目錄 三大核心概念 搭建 配置動態路由 常用的Predicate Filter 視頻學習地址:https://www.bilibili.com/video/BV18E411x7eT 源碼地址:https://gitee.com/zhu_xinmiao/springcloud spring cloud版本:H版 Gateway網關實際上就是在微服務前套了一層包裝,使微服務的端口不會直接暴露給使用...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡