spring-cloud微服務(wù)項目實戰(zhàn)(10)-集成sleuth整合Zipkin調(diào)用跟蹤

目的

部署zipkin服務(wù),配合sleuth進(jìn)行調(diào)用分析

簡介

zipkin是Twitter的開源的分布式跟蹤系統(tǒng)脸狸,基于Dapper的論文設(shè)計而來最仑。主要功能就是收集系統(tǒng)的調(diào)用數(shù)據(jù),進(jìn)行分析.論文參考http://bigbully.github.io/Dapper-translation/,其實現(xiàn)框架如下:

工具名稱 提供商 類型 源碼地址
Zipkin twitter 開源 https://github.com/openzipkin/zipkin
pinpoint naver 開源 https://github.com/naver/pinpoint
appdash sourcegraph 開源 https://github.com/sourcegraph/appdash
cat 大眾點評 開源 https://github.com/dianping/cat
hydra 京東 開源 https://github.com/odenny/hydra
鷹眼 阿里 閉源 -
oneAPM oneapm 閉源 -

開工

  1. 各系統(tǒng)添加zipkin依賴
    <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
   </dependency>
  1. application.yml中添加zipkin配置
spring:
  Jackson:
    serialization:
      indent-output: true
  application:
    name: udm-server
  zipkin:
#我本地部署的zipkin服務(wù)用的9411端口
    base-url: http://localhost:9411
  sleuth:
    sampler:
      percentage: 1.0
  1. 新建zipkin-dog項目module炊甲,我們將采用mysql作為數(shù)據(jù)存儲(不配置盯仪,默認(rèn)會存儲到內(nèi)存中),本次未集成mq或kafka等異步組件蜜葱,有需要后續(xù)會介紹全景,依賴添加
<?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 http://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>1.5.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>open.template.work</groupId>
    <artifactId>zipkin-dog</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>zipkin-dog</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Edgware.SR2</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.zipkin.java</groupId>
            <artifactId>zipkin-autoconfigure-ui</artifactId>
        </dependency>
        <dependency>
            <groupId>io.zipkin.java</groupId>
            <artifactId>zipkin-server</artifactId>
        </dependency>
        <dependency>
            <groupId>io.zipkin.java</groupId>
            <artifactId>zipkin-storage-mysql</artifactId>
            <version>2.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

  1. 更新zipkin-dog到application.yml配置文件,我用的本地mysql數(shù)據(jù)庫
server:
  port: 9411
spring:
  datasource:
    driver-class-name:  com.mysql.jdbc.Driver
    url: jdbc:mysql://local.p2.cn:3306/zipkin
    username: root
    password: yeepay.com
zipkin:
  storage:
    type: mysql
  1. 附加步,去掉udm-client中的當(dāng)時的自定義負(fù)載均衡配置牵囤,測試發(fā)現(xiàn)配置了自定義的負(fù)載后爸黄,再集成zipkin,feign有偶爾找不到服務(wù)的bug揭鳞,所以去掉
#udm-server:
#  NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule


---
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients(basePackages = "open.template.work.udm.client.feign")
@EnableHystrix
public class UdmClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(UdmClientApplication.class, args);
    }

//
//  @Bean
//  public IRule ribbonRoundRobinRule() {
//      return new RandomRule();
//  }


}

6.啟動zipkin-dog炕贵,重啟其他各相應(yīng)服務(wù),切記所有需要zipkin記錄調(diào)用鏈的服務(wù)都要添加1野崇、2步的配置

  1. 驗收


    zipkin展示

再次重啟zipkin-dog称开,數(shù)據(jù)依然存在,查看數(shù)據(jù)庫已有請求數(shù)據(jù)乓梨,但spanid可能和日志打印不太一樣鳖轰,因為日志打印未16進(jìn)制,數(shù)據(jù)庫存儲為bigint扶镀。

  1. 附蕴侣,為了提高性能可以集成mq或kafka等異步組件,本章暫未展示

完工臭觉!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末昆雀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蝠筑,更是在濱河造成了極大的恐慌狞膘,老刑警劉巖审轮,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件童谒,死亡現(xiàn)場離奇詭異,居然都是意外死亡赏殃,警方通過查閱死者的電腦和手機(jī)稳强,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門场仲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來和悦,“玉大人退疫,你說我怎么就攤上這事渠缕。” “怎么了褒繁?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵亦鳞,是天一觀的道長。 經(jīng)常有香客問我棒坏,道長燕差,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任坝冕,我火速辦了婚禮徒探,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喂窟。我一直安慰自己测暗,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布磨澡。 她就那樣靜靜地躺著碗啄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪稳摄。 梳的紋絲不亂的頭發(fā)上稚字,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機(jī)與錄音厦酬,去河邊找鬼胆描。 笑死,一個胖子當(dāng)著我的面吹牛仗阅,可吹牛的內(nèi)容都是我干的袄友。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼霹菊,長吁一口氣:“原來是場噩夢啊……” “哼剧蚣!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起旋廷,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鸠按,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后饶碘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體目尖,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年扎运,在試婚紗的時候發(fā)現(xiàn)自己被綠了瑟曲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饮戳。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖洞拨,靈堂內(nèi)的尸體忽然破棺而出扯罐,到底是詐尸還是另有隱情,我是刑警寧澤烦衣,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布歹河,位于F島的核電站,受9級特大地震影響花吟,放射性物質(zhì)發(fā)生泄漏秸歧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一衅澈、第九天 我趴在偏房一處隱蔽的房頂上張望键菱。 院中可真熱鬧,春花似錦今布、人聲如沸经备。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弄喘。三九已至,卻和暖如春甩牺,著一層夾襖步出監(jiān)牢的瞬間蘑志,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工贬派, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留急但,地道東北人。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓搞乏,卻偏偏與公主長得像波桩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子请敦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

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