三、Spring Cloud系列:通过消息队列传输zipkin日志
来源:互联网 发布:dos攻击软件 编辑:程序博客网 时间:2024/06/07 17:24
注意,和前两篇写的没有关系了,(当然也可以在前两篇的基础上修改)
一、zipkin服务端配置
1.引入依赖
//===========消息队列方式的依赖=============//此依赖会自动引入spring-cloud-sleuth-stream并且引入zipkin的依赖包compile("org.springframework.cloud:spring-cloud-sleuth-zipkin-stream")compile("org.springframework.cloud:spring-cloud-starter-stream-rabbit")compile('io.zipkin.java:zipkin-autoconfigure-ui')//保存到数据库需要如下依赖compile('mysql:mysql-connector-java')compile('org.springframework.boot:spring-boot-starter-jdbc')
2.启动类配置
在启动类加上@EnableZipkinStreamServer
@EnableZipkinStreamServer@SpringBootApplicationpublic class ZipkinApplication { public static void main(String[] args) { SpringApplication.run(ZipkinApplication.class, args); }}
3.配置文件
完整配置如下,根据自己的设置进行修改即可
#================================基础配置==============================#应用名spring.application.name=zipking-server-v1#端口server.port=9411#================================消息队列==============================spring.rabbitmq.host=localhostspring.rabbitmq.port=5672spring.rabbitmq.username=guestspring.rabbitmq.password=guest#================================数据源配置==============================#zipkin数据保存到数据库中需要进行如下配置#表示当前程序不使用sleuthspring.sleuth.enabled=false#表示zipkin数据存储方式是mysqlzipkin.storage.type=mysql#数据库脚本创建地址,当有多个是可使用[x]表示集合第几个元素spring.datasource.schema[0]=classpath:/zipkin.sql#spring boot数据源配置spring.datasource.url=jdbc:mysql://localhost:3306/zipkinspring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.initialize=truespring.datasource.continue-on-error=true
4.数据库文件
- 在本地数据库建立一个数据库,起名为
zipkin
。 - 在resources目录下新建
zipkin.sql
文件,内容如下
SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for zipkin_annotations-- ----------------------------CREATE TABLE `zipkin_annotations` ( `trace_id` bigint(20) NOT NULL COMMENT 'coincides with zipkin_spans.trace_id', `span_id` bigint(20) NOT NULL COMMENT 'coincides with zipkin_spans.id', `a_key` varchar(255) NOT NULL COMMENT 'BinaryAnnotation.key or Annotation.value if type == -1', `a_value` blob COMMENT 'BinaryAnnotation.value(), which must be smaller than 64KB', `a_type` int(11) NOT NULL COMMENT 'BinaryAnnotation.type() or -1 if Annotation', `a_timestamp` bigint(20) DEFAULT NULL COMMENT 'Used to implement TTL; Annotation.timestamp or zipkin_spans.timestamp', `endpoint_ipv4` int(11) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null', `endpoint_ipv6` binary(16) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null, or no IPv6 address', `endpoint_port` smallint(6) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null', `endpoint_service_name` varchar(255) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null', UNIQUE KEY `trace_id` (`trace_id`,`span_id`,`a_key`,`a_timestamp`) COMMENT 'Ignore insert on duplicate', KEY `trace_id_2` (`trace_id`,`span_id`) COMMENT 'for joining with zipkin_spans', KEY `trace_id_3` (`trace_id`) COMMENT 'for getTraces/ByIds', KEY `endpoint_service_name` (`endpoint_service_name`) COMMENT 'for getTraces and getServiceNames', KEY `a_type` (`a_type`) COMMENT 'for getTraces', KEY `a_key` (`a_key`) COMMENT 'for getTraces') ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED;-- ------------------------------ Table structure for zipkin_dependencies-- ----------------------------CREATE TABLE `zipkin_dependencies` ( `day` date NOT NULL, `parent` varchar(255) NOT NULL, `child` varchar(255) NOT NULL, `call_count` bigint(20) DEFAULT NULL, UNIQUE KEY `day` (`day`,`parent`,`child`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED;-- ------------------------------ Table structure for zipkin_spans-- ----------------------------CREATE TABLE `zipkin_spans` ( `trace_id` bigint(20) NOT NULL, `id` bigint(20) NOT NULL, `name` varchar(255) NOT NULL, `parent_id` bigint(20) DEFAULT NULL, `debug` bit(1) DEFAULT NULL, `start_ts` bigint(20) DEFAULT NULL COMMENT 'Span.timestamp(): epoch micros used for endTs query and to implement TTL', `duration` bigint(20) DEFAULT NULL COMMENT 'Span.duration(): micros used for minDuration and maxDuration query', UNIQUE KEY `trace_id` (`trace_id`,`id`) COMMENT 'ignore insert on duplicate', KEY `trace_id_2` (`trace_id`,`id`) COMMENT 'for joining with zipkin_annotations', KEY `trace_id_3` (`trace_id`) COMMENT 'for getTracesByIds', KEY `name` (`name`) COMMENT 'for getTraces and getSpanNames', KEY `start_ts` (`start_ts`) COMMENT 'for getTraces ordering and range') ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED;
zipkin的服务端就配置完成了,别忘记重新刷新下项目。
二、zipkin客户端配置
引入依赖
compile("org.springframework.cloud:spring-cloud-sleuth-zipkin-stream")compile("org.springframework.cloud:spring-cloud-starter-stream-rabbit")
然后客户端就配置完成了
三、启动
这时候分别启动客户端和服务端,在日志中可以看到初始化mq连接。
然后访问一个客户端的rest接口,看看打开服务端locahost:9411,看看有没有生成记录,这时看看数据库,会建立三个表。就说明我们配置成功了。
阅读全文
0 0
- 三、Spring Cloud系列:通过消息队列传输zipkin日志
- 一、Spring Cloud系列:Zipkin服务端配置
- 二、Spring Cloud系列:Zipkin客户端配置
- 全链路spring cloud sleuth+zipkin
- Spring Cloud Sleuth+Zipkin实践
- Spring Cloud微服务(8)之 sleuth+zipkin日志聚合
- spring cloud 使用sleuth +zipkin 实例测试
- Spring Cloud 服务链路追踪 (zipkin)
- Spring Cloud Sleuth Zipkin 展示追踪数据
- Spring Cloud Sleuth Zipkin 升级使用
- Spring Cloud Sleuth Zipkin 升级使用
- Spring cloud系列三 Spring Cloud 配置中心集群
- Spring Cloud系列三 之 Hystrix断路器
- 利用Zipkin对Spring Cloud应用进行服务追踪分析
- Spring cloud sleuth rabbitmq zipkin mysql分布式服务跟踪分析
- Spring Cloud(六):链路追踪Sleuth与Zipkin结合
- 利用Zipkin对Spring Cloud应用进行服务追踪分析
- 进程之间如何通过消息队列传输大量数据
- UNICODE_STRING详解及注意事项
- 微信小程序 5 网络api
- 【安卓学习笔记】JAVA基础Lesson12-接口
- 一条cpu指令执行过程
- 【后台开发拾遗】总帖
- 三、Spring Cloud系列:通过消息队列传输zipkin日志
- iOS学习笔记-145.网络05——NSURLConnection02_使用相关
- Java 基础巩固 Date 格式化 及 日期计算
- Excel合并计算和分类汇总
- html与servlet用ajax以url传参数乱码问题解决
- DirectX11 的初始化(1) 基本参数函数
- LeetCode27. Remove Element
- HDOJ HDU 2602 Bone Collector
- Leetcode 40. Combination Sum II