java B2B2C Springcloud电子商城系统-通过消息队列传输zipkin日志

yayay · · 126 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
一、zipkin服务端配置 需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码 一零三八七七四六二六 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 @SpringBootApplication public 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=localhost spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest #================================数据源配置============================== #zipkin数据保存到数据库中需要进行如下配置 #表示当前程序不使用sleuth spring.sleuth.enabled=false #表示zipkin数据存储方式是mysql zipkin.storage.type=mysql #数据库脚本创建地址,当有多个是可使用[x]表示集合第几个元素 spring.datasource.schema[0]=classpath:/zipkin.sql #spring boot数据源配置 spring.datasource.url=jdbc:mysql://localhost:3306/zipkin spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.initialize=true spring.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,看看有没有生成记录,这时看看数据库,会建立三个表。就说明我们配置成功了。[java B2B2C Springcloud电子商城系统](http://minglisoft.cn/honghu/tech.html)
126 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet