<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Druid 連接池監(jiān)控集群解決方案

          共 1648字,需瀏覽 4分鐘

           ·

          2020-10-20 10:22

          什么是 Druid Monitor

          Druid 是一個非常強大的數(shù)據(jù)庫連接池,但是它的強大并不僅僅體現(xiàn)在作為一個高性能連接池加快數(shù)據(jù)訪問上和連接管理上,它內置了一個強大的監(jiān)控工具:Druid Monitor。不僅可以監(jiān)控數(shù)據(jù)源和慢查詢,還可以監(jiān)控 Web 應用、URI 監(jiān)控、Session 監(jiān)控、Spring 監(jiān)控等。

          • ip:port/druid/sql.html

            7b26da56c3dafae49d70d2da9eacb754.webp

          什么是 Druid Admin

          • 如上文所述, Druid Monitor 提供強大的監(jiān)控能力,但目前僅是針對對單個服務實例的監(jiān)控。在微服務架構[1]日益流行的時下,同一個服務可能有會有 N 個實例,監(jiān)控維度需要上升至 集群

          • 官方在 druid 1.2.1 版本后,提供 druid-admin[2] 模塊 來解決集群監(jiān)控的問題。

          • 如下圖我們可以在原有的監(jiān)控集群上可以動態(tài)的切換服務名稱,做到一個監(jiān)控入口,實現(xiàn)不同服務的監(jiān)控切換

          fe1ba967fd80f8e3c577cbd3fcdc6971.webp

          Spring Cloud Stater 封裝

          • 目前官方的 druid-admin 正在開發(fā)工程中,并不能直接編譯運行(依賴包錯誤、不支持 java11 等)。

          • druid-admin 本身是一個直接可運行的 web 服務,對目前已有服務不太友好,不能做到 spring boot admin[3] 那種即插即用

          • 所以基于上述問題,筆者對 druid-admin 進行了相關的修改,直接抽取成 spring boot stater 引入即用。

          1. 增加依賴

          ??<dependency>
          ???<groupId>com.pig4cloud.plugingroupId>
          ???<artifactId>spring-cloud-stater-druid-monitorartifactId>
          ???<version>0.0.1version>
          ??dependency>


          ??
          ??<dependency>
          ???<groupId>com.alibaba.cloudgroupId>
          ???<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
          ??dependency>

          2. 接入注冊中心和需要監(jiān)控的服務列表

          spring:
          ??cloud:
          ????nacos:
          ??????discovery:
          ????????server-addr:?127.0.0.1:8848

          #?druid-admin?需要監(jiān)控的列表
          monitor:
          ??applications:
          ????-?pigx-upms-biz
          ????-?pigx-auth

          3. 目標服務暴露 druid 監(jiān)控端點

          spring:
          ??datasource:
          ????druid:
          ??????stat-view-servlet:
          ????????enabled:?true
          ????????allow:?""
          ????????url-pattern:?/druid/*

          4. 訪問 druid-admin 查看集群監(jiān)控

          • ip:port/druid/sql.html

          整合 Spring Boot Admin

          264c8e13211b5d40d79379cbaae8b16e.webp
          • 引入上述依賴,增加如下配置即可
          spring:
          ??boot:
          ????admin:
          ??????ui:
          ????????external-views:
          ??????????-?label:?"SQL監(jiān)控"
          ????????????url:?/druid/sql.html
          ????????????order:?2000

          使用限制

          • 由于 druid monitor 的登錄校驗基于 session 設計,所有在無狀態(tài)的微服務中不適用。建議直接暴露所有 druid 相關的端點,通過前置網(wǎng)關統(tǒng)一接口權限。

          • 目前實例監(jiān)控數(shù)據(jù)是保存在對應內存中,僅在查看時通過每個實例匯總后顯示,后期會實現(xiàn)持久化。

          參考資料

          [1]

          微服務架構: https://gitee.com/log4j/pig

          [2]

          druid-admin: https://github.com/alibaba/druid/tree/master/druid-admin

          [3]

          spring boot admin: https://github.com/codecentric/spring-boot-admin


          瀏覽 56
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大鸡巴在线视频网站 | 中文字幕第九页 | 中文偷拍网 | 大鸡巴在线| 免费A∨在线 |