默认三台虚拟机机器 bigdata111、bigdata112、bigdata113

环境: 已经安装jdk8,并配置环境变量、已设置相互免密、登录免密,设置hosts映射(好习惯)

1.安装kafka集群

   三个节点 3个broker bigdata111、bigdata112、bigdata113. 主题topic:zipkin

  参考 kafka  安装教程,需要安装zookeeper。 建议手动建topic,3个副本,3个分区。

2.安装es单节点

   单节点在机器bigdata113

  下载软件包解压 修改配置文件即可启动。

3.安装zipkin2.23.2-exec.jar

  单节点安装到机器bigdata113

 下载jar包,即可启动,注意这里的启动参数:存储类型不是java变量,是环境变量

STORAGE_TYPE=elasticsearch ES_HOSTS=http://localhost:9200 java -DKAFKA_BOOTSTRAP_SERVERS=bigdata111:9092,bigdata112:9092,bigdata113:9092 -DKAFKA_TOPIC=zipkin -Xms256M -Xmx256M -jar zipkin-server-2.23.2-exec.jar

STORAGE_TYPE=elasticsearch ES_HOSTS=http://localhost:9200 java -DKAFKA_BOOTSTRAP_SERVERS=bigdata111:9092,bigdata112:9092,bigdata113:9092 -DKAFKA_TOPIC=zipkin -Xms256M -Xmx256M -jar zipkin-server-2.23.2-exec.jar

4.微服务引入依赖

4.1 zipkin的三种发送类型

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package org.springframework.cloud.sleuth.zipkin2.sender;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties("spring.zipkin.sender")
public class ZipkinSenderProperties {
    private ZipkinSenderProperties.SenderType type;

    public ZipkinSenderProperties() {
    }

    public ZipkinSenderProperties.SenderType getType() {
        return this.type;
    }

    public void setType(ZipkinSenderProperties.SenderType type) {
        this.type = type;
    }

    public static enum SenderType {
        RABBIT,
        KAFKA,
        WEB;

        private SenderType() {
        }
    }
}

4.2 微服务应用引入jar包

   注意是sring boot 2.12版本

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

4.3 修改配置文件

   配置文件application.yml,添加如下配置:

  zipkin:
    base-url: http://bigdata111:9411
    sender:
      type: kafka
  sleuth:
    sampler:
      probability: 1.0
  kafka:
    bootstrap-servers: bigdata111:9092,bigdata112:9092,bigdata113:9092

zipkin端口 9411, kafka 9092, es 9200, 应用接口9999

5.测试步骤

  5.1启动应用 请求接口

      swagger接口。 http://localhost:9999/xxxxxx/swagger-ui.html,试用测试接口。

  5.2 通过kafka tools

       查看kafka偏移量,查看kafka的数据。

 

生产者投递的消息的偏移量,副本同步的偏移量。

 

消费者消费的偏移量,剩余消费lag数量

5.3 通过kibana

    通过kibana查看es数据或者es-head查看es数据

5.3.1通过stackManager管理索引,添加索引规则进行分组。

 5.3.2查看Es数据

     通过 es-discover选在zipkin-* 索引

 5.3.4 zipkin的数据字段

          通过 es-discover选择zipkin-* 索引,zipkin的数据字段有trackId,标签tags,请求方法 post 应用名称,接口地址,请求时长等参数。

 

5.4 通过zipkin查看链路日志 系统拓扑图

5.4.1 查看链路收集结果

    访问 http://bigdata111:9411/zipkin/

5.4.2链路数据详细

 本例子暂时没有经过网关,依赖暂时没有数据。后续补充拓扑图。

扩展问题:高可用测试运维方向,需求方向 定制开发。

运维方向:

1.kafka 故障测试 broker挂了一台可以继续使用,挂了两台集群可以使用不?

2.es集群故障测试 故障一半的es,集群能否可以使用?

3.zipkin可以做集群不?多台zipkin如何实现高可用?

组件监控保障:

1.kafka性能检查 ,集群规划,多少台主机。

2.es性能监控,集群规划 数据量规划,多少台机器,多大的存储,网卡多大。

需求方向:

1.扩展开发使用zipkin接口定制开发?

2.自定查询es数据,定制看板报表的需求?

运维监控分析:

1.根据链路日志定位故障,请求次数 耗时 请求数量,请求错误数量。

2.画出拓扑图,勾勒出系统调用的依赖图。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐