Gateway+Nacos+Sleuth+Zipkin網(wǎng)關(guān)鏈路追蹤(測(cè)試及源碼),Gateway+Nacos+Zipkin安裝部署可視化http方式鏈路追蹤(三)

問(wèn)題背景

上一篇文章使用了sleuth日志形式的鏈路追蹤决左,但微服務(wù)過(guò)多的時(shí)候,這種模式顯得非常臃腫無(wú)力,因此這個(gè)篇章使用zipkin可視化界面來(lái)查看追蹤鏈路

Gateway+Nacos+Sleuth+Zipkin網(wǎng)關(guān)鏈路追蹤(測(cè)試及源碼)惑芭,Gateway+FeignClient+Nacos通過(guò)網(wǎng)關(guān)遠(yuǎn)程調(diào)用微服務(wù)(一)

Gateway+Nacos+Sleuth+Zipkin網(wǎng)關(guān)鏈路追蹤(測(cè)試及源碼),Gateway+Nacos+Sleuth鏈路追蹤(二)

Gateway+Nacos+Sleuth+Zipkin網(wǎng)關(guān)鏈路追蹤(測(cè)試及源碼)继找,Gateway+Nacos+Zipkin安裝部署可視化http方式鏈路追蹤(三)

Gateway+Nacos+Sleuth+Zipkin網(wǎng)關(guān)鏈路追蹤(測(cè)試及源碼)遂跟,Gateway+Nacos+Zipkin持久化mysql存儲(chǔ)rabbitmq消息隊(duì)列鏈路追蹤(四)

zipkin的下載安裝部署

1 前面幾篇文章講了nacos服務(wù)端的安裝,這篇文章講解一下zipkin的安裝码荔,zipkin有官方提供的jar包可以直接時(shí)候漩勤,本文作為測(cè)試工程就直接下載,沒(méi)有自己創(chuàng)建了
2 下載zipkin服務(wù)端缩搅,講一個(gè)通用的方法越败,以后大家也可以以這種方式下載
3 打開(kāi) https://search.maven.org/ 網(wǎng)站


4 在紅框中輸入需要查找的jar包,這里輸入zipkin-server
image

5 選擇紅框44所有版本

6 我選擇的是最新版本硼瓣,2.23.16版究飞,下載exec.jar版本才可以執(zhí)行,官網(wǎng)下載慢堂鲤,也可以下載我上傳的亿傅,在上文注意事項(xiàng)中

7 把java放入linux運(yùn)行,可以在本地運(yùn)行瘟栖,但前提都要有JDK環(huán)境葵擎,我個(gè)人把日志打印出來(lái)了

nohup java -jar zipkin-server-2.23.16-exec.jar >> zipkin.log &


8 默認(rèn)端口為9411,登錄http://127.0.0.1:9411/zipkin半哟,這里使用自己的IP即可

項(xiàng)目搭建

1 根據(jù)上一篇sleuth文章酬滤,更改sleuth的依賴為zipkin,zipkin依賴是包含sleuth依賴的

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

2 gateway的pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.yg</groupId>
    <artifactId>gateway</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>gateway</name>
    <description>gateway</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
<!--            <version>2.1.0.RELEASE</version>-->
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
<!--            <scope>test</scope>-->
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<!--            <version>2.1.0.RELEASE</version>-->
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>

    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

3 service的公共pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.yg</groupId>
    <artifactId>sleuthTest</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <modules>
        <module>service1</module>
        <module>service2</module>
    </modules>

    <name>sleuthTest</name>
    <description>sleuthTest</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>


        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<!--            <version>2.1.0.RELEASE</version>-->
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>

    </dependencies>

    <dependencyManagement>
        <dependencies>
            <!--Spring Cloud-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

4 gateway添加application配置

server:
  port: 3900

spring:
  application:
    name: gateway
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
    gateway:
      discovery:
        locator:
          enabled: true
          lower-case-service-id: true
      routes:
        - id: service2  #設(shè)置路由id(理論上是可以隨便寫(xiě)的)
          uri: lb://service2 #設(shè)置路由的url lb://nacos服務(wù)注冊(cè)名稱 lb://service1 http://localhost:3901
          predicates:
            - Path=/three/** #路徑匹配規(guī)則寓涨,微服務(wù)必須有一個(gè)統(tǒng)一的入口盯串,不然網(wǎng)關(guān)不能訪問(wèn),@RequestMapping("/three")
        - id: service1  #設(shè)置路由id(理論上是可以隨便寫(xiě)的)
          uri: lb://service1 #設(shè)置路由的url lb://nacos服務(wù)注冊(cè)名稱 lb://service1 http://localhost:3901
          predicates:
            - Path=/four/** #路徑匹配規(guī)則戒良,@RequestMapping("/four")

  zipkin:
    base-url: http://10.10.195.199:9411/
    sender:
      type: web
    locator:
      discovery:
        enabled: true
  sleuth:
    sampler:
      probability: 1.0

5 service1添加application配置

server:
  port: 3901

spring:
  application:
    name: service1
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

  zipkin:
    base-url: http://10.10.195.199:9411/
    sender:
      type: web
    locator:
      discovery:
        enabled: true
  sleuth:
    sampler:
      probability: 1.0

6 service2添加application配置

server:
  port: 3902

spring:
  application:
    name: service2
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

  zipkin:
    base-url: http://10.10.195.199:9411/
    sender:
      type: web
    locator:
      discovery:
        enabled: true
  sleuth:
    sampler:
      probability: 1.0

7 其他不用更改

測(cè)試步驟

1 啟動(dòng)nacos服務(wù)端体捏,zipkin服務(wù)端,gateway糯崎,service1几缭,service2




2 查看注冊(cè)中心http://localhost:8848/nacos,密碼和賬號(hào)都為:nacos


3 使用網(wǎng)關(guān)路由調(diào)用service1微服務(wù)API拇颅,service1微服務(wù)調(diào)用service2

4 查看zipkin奏司,點(diǎn)擊RUN QUERY,顯示調(diào)用鏈路

5 點(diǎn)擊紅框樟插,查看依賴鏈路

6 通過(guò)注冊(cè)中心使用微服務(wù)名顯示鏈路關(guān)系

心得

  • 通過(guò)zipkin可視化界面看起來(lái)更清晰
  • 這個(gè)篇章講的是http鏈路關(guān)系韵洋,此方式是同步的方式竿刁,微服務(wù)過(guò)多會(huì)產(chǎn)生一定延時(shí),下個(gè)篇章介紹使用rabbitMQ的方式




作為程序員第 20 篇文章搪缨,每次寫(xiě)一句歌詞記錄一下食拜,看看人生有幾首歌的時(shí)間,wahahaha ...

Lyric: 你臉頰微熱

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末副编,一起剝皮案震驚了整個(gè)濱河市负甸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌痹届,老刑警劉巖呻待,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異队腐,居然都是意外死亡蚕捉,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)柴淘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)迫淹,“玉大人,你說(shuō)我怎么就攤上這事为严×舶荆” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵第股,是天一觀的道長(zhǎng)应民。 經(jīng)常有香客問(wèn)我,道長(zhǎng)夕吻,這世上最難降的妖魔是什么瑞妇? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮梭冠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘改备。我一直安慰自己控漠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布悬钳。 她就那樣靜靜地躺著盐捷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪默勾。 梳的紋絲不亂的頭發(fā)上碉渡,一...
    開(kāi)封第一講書(shū)人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音母剥,去河邊找鬼滞诺。 笑死形导,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的习霹。 我是一名探鬼主播朵耕,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼淋叶!你這毒婦竟也來(lái)了阎曹?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤煞檩,失蹤者是張志新(化名)和其女友劉穎处嫌,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體斟湃,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡熏迹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了桐早。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片癣缅。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖哄酝,靈堂內(nèi)的尸體忽然破棺而出友存,到底是詐尸還是另有隱情,我是刑警寧澤陶衅,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布屡立,位于F島的核電站,受9級(jí)特大地震影響搀军,放射性物質(zhì)發(fā)生泄漏膨俐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一罩句、第九天 我趴在偏房一處隱蔽的房頂上張望焚刺。 院中可真熱鬧,春花似錦门烂、人聲如沸乳愉。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蔓姚。三九已至,卻和暖如春慨丐,著一層夾襖步出監(jiān)牢的瞬間坡脐,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工房揭, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留备闲,地道東北人晌端。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像浅役,于是被迫代替她去往敵國(guó)和親斩松。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容