<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>

          Arthas 在線診斷工具改造,讓它更好用,更傻瓜!

          共 4114字,需瀏覽 9分鐘

           ·

          2023-10-04 07:31

          你知道的越多,不知道的就越多,業(yè)余的像一棵小草!

          你來,我們一起精進!你不來,我和你的競爭對手一起精進!

          編輯:業(yè)余草

          來源:juejin.cn/post/7281849496983994383

          推薦:https ://t.zsxq.com/12MKG9QwA

          自律才 能自由

          眾所周知,最近兩周,我陸續(xù)發(fā)了好幾篇 Arthas 相關(guān)的文章:https://t.zsxq.com/12BmfIKbR、《》,深受喜愛,今天我們繼續(xù)發(fā)一篇基于 arthas 源碼,改造項目的實戰(zhàn)案例,希望大家有所收獲!

          00e559f46486e78a2bd8c522a7744832.webp

          Arthas 在線診斷工具

          Arthas 是阿里巴巴開源的在線診斷工具,提供了 Dashboard 負載總覽、Thread 線程占用、Stack 堆棧查看、Watch 性能觀測 等功能。我參考一些群友的思路、與案例arthas-ext的實現(xiàn)進行了優(yōu)化:

          1. 服務(wù)發(fā)現(xiàn):自動獲取接入的應(yīng)用列表 IP 和端口,無須手動輸入 AgentId
          2. 權(quán)限控制:基于 Spring Security 實現(xiàn)登錄控制,并支持 Nacos 動態(tài)綁定賬號與服務(wù)

          本文分享出核心源碼,如需詳細源碼,歡迎加我微信,贈送給有心人。

          演示圖例

          改造前

          dcca8218021049e76d389c3fe3ba34af.webp

          改造后

          a2a529a90e0b523b59e4a9b6b330a267.webp

          登錄控制

          5447f65405b4a47aa22c5fb87bb8d211.webp

          配置管理

                
                arthas:
            tunnel:
              users:
                - name: admin
                  password: 123456
                  roles: '*' # 全部授權(quán)
                - name: user
                  password: 123456
                  roles:
                    - eden-gateway # 特定服務(wù)授權(quán)

          如何構(gòu)建

          本項目默認使用 Maven 來構(gòu)建,最快的使用方式是導入我給的源碼項目到開發(fā)工具?;蛘咴创a項目的根目錄執(zhí)行 mvn package -T 4C 完成本項目的構(gòu)建。

          如何啟動

          IDEA 啟動

          本項目不依賴外部組件,可以直接啟動運行。

          1. 在項目目錄下運行 mvn install(如果不想運行測試,可以加上 -DskipTests 參數(shù))。
          2. 進入 tunnel-server 目錄,執(zhí)行 mvn spring-boot:run 或者啟動 ArthasTunnelApplication 類。運行成功的話,可以看到 Spring Boot 啟動成功的界面。
          3. 進入 web-ui 目錄,執(zhí)行 yarn run dev:tunnel 或者 yarn run dev:ui。運行后控制臺日志輸出 http://localhost:8000 地址,點擊訪問。

          鏡像啟動

          將項目發(fā)布公司內(nèi)部、或個人的 Docker Hub 倉庫,然后執(zhí)行如下參考命令。

                
                docker run -p 8080:8080 --name=arthas-tunnel-server -d xttblog(業(yè)余草)/arthas-tunnel-server

          如何部署

          FatJar 部署

          執(zhí)行 mvn clean package 打包成一個 fat jar,參考如下命令啟動編譯后的控制臺。

                
                java -Dserver.port=8080 -jar target/arthas-tunnel-server.jar

          Docker 部署

          調(diào)整 Maven 配置文件 setiings.xml,填寫相關(guān)憑據(jù)。

                
                <settings>
              <profiles>
                  <profile>
                      <id>gitlab</id>
                      <properties>
                          <docker.username>${env.DOCKER_USERNAME}</docker.username>
                          <docker.password>${env.DOCKER_PASSWORD}</docker.password>
                          <docker.image>${env.DOCKER_IMAGE}</docker.image>
                      </properties>
                  </profile>
              </profiles>
          </settings>

          在項目根目錄執(zhí)行 mvn -Pgithub -pl tunnel-server jib:build -Djib.disableUpdateChecks=true 打包為鏡像。

          Helm 部署

          進入 helm 目錄,執(zhí)行 helm install -n arthas arthas . 安裝,在 K8s 環(huán)境將自動創(chuàng)建 Arthas 所需的資源文件。

          如何接入

          為了減少客戶端集成的工作,您可以使用eden-architect框架,只需要兩步就可以完成 Arthas 的集成。

          1. 引入 Arthas 依賴
                
                <dependency>
              <groupId>io.github.shiyindaxiaojie</groupId>
              <artifactId>eden-arthas-spring-boot-starter</artifactId>
          </dependency>
          1. 開啟 Arthas 配置
                
                spring:
            arthas: 
              enabled: false # 默認關(guān)閉,請按需開啟

          arthas: # 在線診斷工具
            agent-id: ${spring.application.name}@${random.value}
            tunnel-server: ws://localhost:7777/ws # Arthas 地址
            session-timeout: 1800
            telnet-port: 0 # 隨機端口
            http-port: 0 # 隨機端口

          筆者提供了兩種不同應(yīng)用架構(gòu)的示例,里面有集成 Sentinel 的示例。分別是「COLA 架構(gòu)」案例和「分層架構(gòu)」案例。

          • 面向領(lǐng)域模型的 「COLA 架構(gòu)」
          • 面向數(shù)據(jù)模型的 「分層架構(gòu)」

          歡迎十一期間愿意彎道超車的有心人士,加我微信,贈送源碼,進行個人學習與研究!

          瀏覽 146
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  亚洲男人天堂2024 | 大香蕉在线亚洲 | 三级无码在线观看 | 色婷婷影视 | h片免费观看视频网站 |