Arthas使用的各類(lèi)方式是怎樣的

Arthas使用的各類(lèi)方式是怎樣的,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)公司2013年至今,公司以網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、系統(tǒng)開(kāi)發(fā)、網(wǎng)絡(luò)推廣、文化傳媒、企業(yè)宣傳、平面廣告設(shè)計(jì)等為主要業(yè)務(wù),適用行業(yè)近百種。服務(wù)企業(yè)客戶千余家,涉及國(guó)內(nèi)多個(gè)省份客戶。擁有多年網(wǎng)站建設(shè)開(kāi)發(fā)經(jīng)驗(yàn)。為企業(yè)提供專(zhuān)業(yè)的網(wǎng)站建設(shè)、創(chuàng)意設(shè)計(jì)、宣傳推廣等服務(wù)。 通過(guò)專(zhuān)業(yè)的設(shè)計(jì)、獨(dú)特的風(fēng)格,為不同客戶提供各種風(fēng)格的特色服務(wù)。

Arthas 是阿里巴巴開(kāi)源的 Java 診斷工具。讓我們能夠在線排查項(xiàng)目發(fā)生的問(wèn)題。除了知道它的存在之外,我們也需要知道我們?nèi)绾稳グ惭b使用它,以便于提高我們?nèi)粘i_(kāi)發(fā)解決 BUG 的效率。

方案介紹

方案一:本地直接運(yùn)行

往往最簡(jiǎn)單的方法實(shí)際是最有效的,它本身就是一個(gè)可運(yùn)行的程序,所以我們可以直接運(yùn)行即可。

  • 我們可以直接通過(guò)官網(wǎng)下載對(duì)應(yīng)的 jar,然后運(yùn)行再進(jìn)行 jar,執(zhí)行對(duì)應(yīng)的命令。

  • 命令如下:

java -jar arthas-boot.jar [option]
  • 演示如下:

Arthas使用的各類(lèi)方式是怎樣的

方案二:Web Console實(shí)現(xiàn)

我們可以不通過(guò)每次進(jìn)入 ssh 中進(jìn)行執(zhí)行程序,我們也可通過(guò) web 方式進(jìn)行訪問(wèn)操作.通過(guò)官網(wǎng)上面的介紹 arthas 的 Web Console,能了解到大致的搭建思路。

  • 通過(guò)下載 arthas-tunnel-server。我們可以拿到對(duì)應(yīng)的 arthas 的 server 端。下載完畢之后直接運(yùn)行即可(我是將其在 ECS 上直接運(yùn)行)。

Arthas使用的各類(lèi)方式是怎樣的

  • 在客戶端對(duì)應(yīng)的啟動(dòng) arthas-boot。并且通過(guò)啟動(dòng)參數(shù)附加上 server 的地址(我是將其在本地運(yùn)行)。

Arthas使用的各類(lèi)方式是怎樣的

  • 選擇對(duì)應(yīng)的進(jìn)程進(jìn)行 attach,會(huì)出現(xiàn)對(duì)應(yīng)的 agent-id,再將其填寫(xiě)到對(duì)應(yīng)的 server 端 http 頁(yè)面中。

Arthas使用的各類(lèi)方式是怎樣的

Arthas使用的各類(lèi)方式是怎樣的

  • 最后我們就可以再 server 端進(jìn)行操作,即 Web Console 實(shí)現(xiàn)完成。

Arthas使用的各類(lèi)方式是怎樣的

方案三:項(xiàng)目依賴(lài)

基于 Spring 相關(guān)搭建的項(xiàng)目直接加入依賴(lài)(需要對(duì)應(yīng)的環(huán)境支持,例如不能缺少 tools.jar)。

  • SpringBoot 項(xiàng)目依賴(lài):

<dependency>
            <groupId>com.taobao.arthas</groupId>
            <artifactId>arthas-spring-boot-starter</artifactId>
            <version>${arthas.version}</version>
        </dependency>
  • 非 SpringBoot 項(xiàng)目依賴(lài):

<dependency>
            <groupId>com.taobao.arthas</groupId>
            <artifactId>arthas-agent-attach</artifactId>
            <version>${arthas.version}</version>
        </dependency>
        <dependency>
            <groupId>com.taobao.arthas</groupId>
            <artifactId>arthas-packaging</artifactId>
            <version>${arthas.version}</version>
        </dependency>
  • 本地項(xiàng)目啟動(dòng)之后可以直接訪問(wèn):

http://127.0.0.1:3658/
  • 當(dāng)然還可以結(jié)合上面介紹的 Web Console。例如配置文件中增加對(duì)應(yīng)的配置信息:

arthas.agent-id=qwejqjnnnunnq
arthas.tunnel-server=ws://server地址:7777/ws
  • 演示如下:

Arthas使用的各類(lèi)方式是怎樣的

Arthas使用的各類(lèi)方式是怎樣的

Arthas使用的各類(lèi)方式是怎樣的

以上步驟就是先把 tunnel-server 啟動(dòng),然后本地配置連接 tunnel-server。然后輸入配置的 Id,即可完成對(duì)應(yīng)的調(diào)試。

方案四:容器配置

基于 docker 配置,目前上容器服務(wù)的企業(yè)不在少數(shù)。對(duì)于容器服務(wù),也是可以適用的。將 jar 下載下來(lái)之后進(jìn)行 ADD 操作,或者每次通過(guò)構(gòu)建 Dockerfile 則會(huì)產(chǎn)生對(duì)應(yīng)含有 arthas 的鏡像文件。

這里介紹下通過(guò) Dockerfile 進(jìn)行構(gòu)建:

FROM openjdk:8-jdk-alpine
ADD target/*.jar app.jar
# copy arthas
COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas
RUN apk add --no-cache tini
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
MAINTAINER Montos 1367654518@qq.com

上述是通過(guò)構(gòu)建 Dockerfile 來(lái)完成的,這里就直接將鏡像文件貼出來(lái),這里是將當(dāng)前 arthas 中的文件復(fù)制到對(duì)應(yīng)的容器中,之后我們可以通過(guò) exec -it 進(jìn)入執(zhí)行,步驟和方法一類(lèi)似。

總結(jié)

通過(guò)上面的介紹,其實(shí)我更推薦使用 Web 接入的方式更好,原因如下:

  • 在服務(wù)直接部署在服務(wù)器上或者 ECS 云服務(wù)器情況下。我們可以直接運(yùn)行在對(duì)應(yīng)的 client 端,但是我們?nèi)绾紊系礁鱾€(gè)服務(wù)所在的服務(wù)器上?通過(guò)跳板機(jī)?那么我們是不是操作的時(shí)候會(huì)有可能對(duì)應(yīng)服務(wù)器造成影響,直接連接服務(wù)器上是肯定不行的。

  • 服務(wù)在所運(yùn)行的 pod 情況下。此時(shí)讓你連接服務(wù)是影響是比上面的情況會(huì)小很多,如果發(fā)生影響也只是影響到當(dāng)前運(yùn)行的 pod。但是如果你想直接連接 pod,那么需要的將對(duì)應(yīng)的 pod 端口需要映射到對(duì)應(yīng)的宿主機(jī)上,然后再提供外部訪問(wèn) ecs 的鏈接。這樣會(huì)使得每次 pod 需要映射出去的端口需要一定的規(guī)則,無(wú)疑是加大了運(yùn)維等工作,運(yùn)行則也消耗了當(dāng)前的資源(訪問(wèn)頁(yè)面等等則走 http 接口請(qǐng)求,如果通過(guò) ws 連接,減少 7 層方面消耗)。

  • 如果通過(guò)上述方法,那么我們可以再一臺(tái)機(jī)器上運(yùn)行 server 即可,我們每次訪問(wèn)都通過(guò)訪問(wèn) server 去連接到到對(duì)應(yīng)的 client 端,同時(shí)對(duì)應(yīng)的 agent-id 可以指定,我們可以每次 pod 進(jìn)行 client 運(yùn)行的時(shí)候指定當(dāng)前的 agent-id,讓其與當(dāng)前的 pod 進(jìn)行一個(gè)綁定,便于我們通過(guò) server 進(jìn)行連接。

當(dāng)然上述觀點(diǎn)仁者見(jiàn)仁智者見(jiàn)智。以上介紹了幾種部署以及運(yùn)行 arthas 的方法,企業(yè)可以根據(jù)當(dāng)前的項(xiàng)目架構(gòu)選擇合適的部署進(jìn)行解決。為什么需要????就因?yàn)槟軒椭_(kāi)發(fā)解決問(wèn)題,不需要來(lái)回發(fā)版!

歡迎登陸 start.aliyun.com 知行動(dòng)手實(shí)驗(yàn)室體驗(yàn) Arthas 57 個(gè)動(dòng)手實(shí)驗(yàn):https://start.aliyun.com/handson-lab/#!category=arthas

Arthas使用的各類(lèi)方式是怎樣的

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

本文題目:Arthas使用的各類(lèi)方式是怎樣的
路徑分享:http://bm7419.com/article28/isgjcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、定制網(wǎng)站定制開(kāi)發(fā)、品牌網(wǎng)站制作網(wǎng)站維護(hù)、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)