日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

前言

微服務(wù)框架落地后,分布式部署架構(gòu)帶來(lái)的問(wèn)題就會(huì)迅速凸顯出來(lái)。尤其線上出現(xiàn)問(wèn)題,不知道如何排查,問(wèn)題出現(xiàn)在哪個(gè)服務(wù)?如何快速定位問(wèn)題?如何跟蹤業(yè)務(wù)調(diào)用鏈路?如何分析解決業(yè)務(wù)瓶頸?今天老顧來(lái)跟小伙伴們看看如何解決以上問(wèn)題。

什么是鏈路追蹤

微服務(wù)架構(gòu)是通過(guò)業(yè)務(wù)來(lái)劃分服務(wù)的,使用REST調(diào)用。對(duì)外暴露的一個(gè)接口,可能需要很多個(gè)服務(wù)協(xié)同才能完成這個(gè)接口功能,如果鏈路上任何一個(gè)服務(wù)出現(xiàn)問(wèn)題或者網(wǎng)絡(luò)超時(shí),都會(huì)形成導(dǎo)致接口調(diào)用失敗。隨著業(yè)務(wù)的不斷擴(kuò)張,服務(wù)之間互相調(diào)用會(huì)越來(lái)越復(fù)雜。

微服務(wù)異常之鏈路跟蹤APM工具

 

上圖中,user調(diào)用A,A會(huì)調(diào)用C,C再調(diào)用E;這條調(diào)用鏈路,我們還能夠看清楚;但是一旦微服務(wù)很多調(diào)用依賴復(fù)雜就看不清楚了,如下圖

微服務(wù)異常之鏈路跟蹤APM工具

 

上圖是不是看到后,有密集恐懼癥,像個(gè)線團(tuán),一團(tuán)亂麻;如果這個(gè)時(shí)候出現(xiàn)了調(diào)用異常,那我們依據(jù)調(diào)用接口入口,一步步、一個(gè)服務(wù)一個(gè)服務(wù)的去跟蹤調(diào)試;這個(gè)流程會(huì)把人搞瘋的,也許1個(gè)小時(shí)后,也不知道什么問(wèn)題;就像我們以前找線頭,然后一步步的去重新卷圈。

面對(duì)以上情況,我們就需要一些可以幫助理解系統(tǒng)行為、用于分析性能問(wèn)題的工具,以便發(fā)生故障的時(shí)候,能夠快速定位和解決問(wèn)題,這就是所謂的 APM(應(yīng)用性能管理)。

什么是 SkyWalking

Skywalking是一款國(guó)內(nèi)開(kāi)源的應(yīng)用性能監(jiān)控工具,支持對(duì)分布式系統(tǒng)的監(jiān)控、跟蹤和診斷。目前主要的一些 APM 工具有: Cat、Zipkin、Pinpoint、SkyWalking。SkyWalking也是Apache的孵化項(xiàng)目之一,擁有頂級(jí)二級(jí)域名

它提供了如下的主要功能特性

微服務(wù)異常之鏈路跟蹤APM工具

 

功能特性:

  • 多種監(jiān)控手段,語(yǔ)言探針和服務(wù)網(wǎng)格(Service Mesh)
  • 多語(yǔ)言自動(dòng)探針,JAVA,.NET Core 和 Node.JS
  • 輕量高效,不需要大數(shù)據(jù)
  • 模塊化,UI、存儲(chǔ)、集群管理多種機(jī)制可選
  • 支持告警
  • 優(yōu)秀的可視化方案

技術(shù)架構(gòu)

微服務(wù)異常之鏈路跟蹤APM工具

 

上圖看了是不是比較亂,其實(shí)Skywalking總體可以分為四部分

1、Skywalking Agent:使用Javaagent做字節(jié)碼植入,無(wú)侵入式的收集,并通過(guò)HTTP或者gRPC方式發(fā)送數(shù)據(jù)到Skywalking Collector

2、Skywalking Collector :鏈路數(shù)據(jù)收集器,對(duì)agent傳過(guò)來(lái)的數(shù)據(jù)進(jìn)行整合分析處理并落入相關(guān)的數(shù)據(jù)存儲(chǔ)中。

3、Storage:Skywalking的存儲(chǔ),在6.x版本中支持以ElasticSearch(推薦)、MySQL、TiDB、H2、作為存儲(chǔ)介質(zhì)進(jìn)行數(shù)據(jù)存儲(chǔ)。

4、UI :Web可視化平臺(tái),用來(lái)展示落地的數(shù)據(jù)。

下載并啟動(dòng) SkyWalking

官方已經(jīng)為我們準(zhǔn)備好了編譯過(guò)的服務(wù)端版本,現(xiàn)在最新版本為6.4.0

下載地址為 http://skywalking.apache.org/downloads/

微服務(wù)異常之鏈路跟蹤APM工具

 

配置 SkyWalking

下載完成后解壓縮

# tar -xvf apache-skywalking-apm-6.4.0.tar
# mv apache-skywalking-apm-bin /usr/local/skywalking
# cd /usr/local/skywalking

修改配置

# cd config

# vim Application.yml@

微服務(wù)異常之鏈路跟蹤APM工具

 

配置存儲(chǔ)方式,默認(rèn)H2,官方推薦elasticsearch

這里需要做三件事

  1. 注釋 H2 存儲(chǔ)方案
  2. 啟用 ElasticSearch 存儲(chǔ)方案
  3. 修改 ElasticSearch 服務(wù)器地址

clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}

啟動(dòng) SkyWalking

修改完配置后,進(jìn)入 skywalkingbin 目錄,運(yùn)行startup.bat啟動(dòng)服務(wù)端

通過(guò)瀏覽器訪問(wèn) http://localhost:8080 出現(xiàn)如下界面即表示啟動(dòng)成功

微服務(wù)異常之鏈路跟蹤APM工具

 

默認(rèn)的用戶名密碼為:admin/admin,登錄成功后,效果如下圖

微服務(wù)異常之鏈路跟蹤APM工具

 

Java Agent 服務(wù)器探針

agent簡(jiǎn)單的理解就是放一個(gè)插件,隨著應(yīng)用程序啟動(dòng),監(jiān)控?cái)?shù)據(jù)、收集數(shù)據(jù)、發(fā)送數(shù)據(jù)的作用。

探針文件在skywalking/agent目錄下

微服務(wù)異常之鏈路跟蹤APM工具

 

啟動(dòng)方式

在以前啟動(dòng)應(yīng)用程序時(shí),加上一些參數(shù)

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar 
 -Dskywalking.agent.service_name=shop-goods-provider 
 -Dskywalking.collector.backend_service=localhost:11800 
 -jar yourApp.jar

參數(shù)含義:

  • -javaagent:用于指定探針路徑
  • -Dskywalking.agent.service_name:用于重寫(xiě) agent/config/agent.config 配置文件中的服務(wù)名
  • -Dskywalking.collector.backend_service:用于重寫(xiě) agent/config/agent.config 配置文件中的服務(wù)地址

啟動(dòng)后,訪問(wèn)鏈接,就會(huì)發(fā)現(xiàn) Service 與 Endpoint 已經(jīng)成功檢測(cè)到了

微服務(wù)異常之鏈路跟蹤APM工具

 


微服務(wù)異常之鏈路跟蹤APM工具

 

表示 SkyWalking 鏈路追蹤配置成功。

Service Topology監(jiān)控

調(diào)用鏈路監(jiān)控可以從兩個(gè)角度去看待。我們先從整體上來(lái)認(rèn)識(shí)一下我們所監(jiān)控的系統(tǒng)。

通過(guò)給服務(wù)添加探針并產(chǎn)生實(shí)際的調(diào)用之后,我們可以通過(guò)Skywalking的前端UI查看服務(wù)之間的調(diào)用關(guān)系。

微服務(wù)異常之鏈路跟蹤APM工具

 

從圖中可以看到:

有兩個(gè)服務(wù)節(jié)點(diǎn):provider & consumer

有一個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn):localhost【mysql】

consumer消費(fèi)了provider提供出來(lái)的接口。

一個(gè)系統(tǒng)的拓?fù)鋱D讓我們清晰的認(rèn)識(shí)到系統(tǒng)之間的應(yīng)用的依賴關(guān)系以及當(dāng)前狀態(tài)下的業(yè)務(wù)流轉(zhuǎn)流程。

細(xì)心的小伙伴們可能發(fā)現(xiàn)圖示節(jié)點(diǎn)consumer上有一部分是紅色的,紅色是什么意思呢?

紅色代表當(dāng)前流經(jīng)consumer節(jié)點(diǎn)的請(qǐng)求有一斷時(shí)間內(nèi)是響應(yīng)異常的。當(dāng)節(jié)點(diǎn)全部變紅的時(shí)候證明服務(wù)現(xiàn)階段內(nèi)就徹底不可用了。運(yùn)維人員可以通過(guò)Topology迅速發(fā)現(xiàn)某一個(gè)服務(wù)潛在的問(wèn)題,并進(jìn)行下一步的排查并做到預(yù)防。

Skywalking Trace監(jiān)控

Skywalking通過(guò)業(yè)務(wù)調(diào)用監(jiān)控進(jìn)行依賴分析,提供給我們了服務(wù)之間的服務(wù)調(diào)用拓?fù)潢P(guān)系、以及針對(duì)每個(gè)endpoint的trace記錄。

我們?cè)谥翱吹絚onsumer節(jié)點(diǎn)服務(wù)中發(fā)生了錯(cuò)誤,讓我們一起來(lái)定位下錯(cuò)誤是發(fā)生在了什么地方又是什么原因呢?

微服務(wù)異常之鏈路跟蹤APM工具

 

在每一條trace的信息中都可以看到當(dāng)前請(qǐng)求的時(shí)間、GloableId、以及請(qǐng)求被調(diào)用的時(shí)間。我們分別看一看正確的調(diào)用和異常的調(diào)用。

Trace調(diào)用鏈路監(jiān)控

微服務(wù)異常之鏈路跟蹤APM工具

 

上圖展示的是一次正常的響應(yīng),這條響應(yīng)總耗時(shí)19ms;可以詳細(xì)點(diǎn)擊每個(gè)span查看詳細(xì)信息

微服務(wù)異常之鏈路跟蹤APM工具

 

Service JVM信息監(jiān)控

微服務(wù)異常之鏈路跟蹤APM工具

 

Skywalking還可以監(jiān)控到Service運(yùn)行時(shí)的CPU、堆內(nèi)存、非堆內(nèi)存使用率、以及GC情況。這些信息來(lái)源于JVM

Skywalking 服務(wù)告警

上面我們提到了通過(guò)查看拓?fù)鋱D以及調(diào)用鏈路可以定位問(wèn)題,可是運(yùn)維人員又不可能一直盯著這些數(shù)據(jù),那么我們就需要告警能力,在異常達(dá)到一定閾值的時(shí)候主動(dòng)的提示我們?nèi)ゲ榭聪到y(tǒng)狀態(tài)。

在Sywalking 6.x版本中新增了對(duì)服務(wù)狀態(tài)的告警能力。它通過(guò)webhook的方式讓我們可以自定義我們告警信息的通知方式。諸如:郵件通知、微信通知、短信通知等。

告警的規(guī)則配置。在alarm-settings.xml中可以配置告警規(guī)則,告警規(guī)則支持自定義。

微服務(wù)異常之鏈路跟蹤APM工具

 

1、service_resp_time_rule:告警規(guī)則名稱 ***_rule (規(guī)則名稱可以自定義但是必須以’_rule’結(jié)尾

2、indicator-name:指標(biāo)數(shù)據(jù)名稱: 定義參見(jiàn)http://t.cn/EGhfbmd

3、op: 操作符: > , < , = 【當(dāng)然你可以自己擴(kuò)展開(kāi)發(fā)其他的操作符】

4、threshold:目標(biāo)值:指標(biāo)數(shù)據(jù)的目標(biāo)數(shù)據(jù) 如sample中的1000就是服務(wù)響應(yīng)時(shí)間,配合上操作符就是大于1000ms的服務(wù)響應(yīng)

5、period: 告警檢查周期:多久檢查一次當(dāng)前的指標(biāo)數(shù)據(jù)是否符合告警規(guī)則

6、counts: 達(dá)到告警閾值的次數(shù)

7、silence-period:忽略相同告警信息的周期

8、message:告警信息

文件結(jié)尾有最后一個(gè)webhooks屬性:服務(wù)告警通知服務(wù)地址

webhooks:
# - http://127.0.0.1/notify/
# - http://127.0.0.1/go-wechat/

總結(jié)

本文簡(jiǎn)單了介紹了Skywalking簡(jiǎn)單的知識(shí),可以通過(guò)Skywalking,可以讓我們方便的查看微服務(wù)架構(gòu)中系統(tǒng)瓶頸以及性能問(wèn)題等。小伙伴們可以去嘗試操作一下哦,謝謝!!!


---End---

最近老顧上傳了微服務(wù)網(wǎng)關(guān)的分享課程,請(qǐng)大家多多支持

分享到:
標(biāo)簽:微服
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定