From 2be94abc91deaa7e76c29b308c6f7fcb20f1c53d Mon Sep 17 00:00:00 2001
From: YunaiV <>
Date: Thu, 19 Mar 2020 08:01:08 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20spring=20cloud=20sleuth=20?=
=?UTF-8?q?=E9=93=BE=E8=B7=AF=E8=BF=BD=E8=B8=AA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
labx-13/labx-13-sc-sleuth-db-redis/pom.xml | 95 +++++++++++++++++++
.../springmvcdemo/UserServiceApplication.java | 13 +++
.../config/ZipkinConfiguration.java | 29 ++++++
.../controller/UserController.java | 27 ++++++
.../src/main/resources/application.yml | 28 ++++++
labx-13/pom.xml | 1 +
6 files changed, 193 insertions(+)
create mode 100644 labx-13/labx-13-sc-sleuth-db-redis/pom.xml
create mode 100644 labx-13/labx-13-sc-sleuth-db-redis/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/UserServiceApplication.java
create mode 100644 labx-13/labx-13-sc-sleuth-db-redis/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/config/ZipkinConfiguration.java
create mode 100644 labx-13/labx-13-sc-sleuth-db-redis/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/controller/UserController.java
create mode 100644 labx-13/labx-13-sc-sleuth-db-redis/src/main/resources/application.yml
diff --git a/labx-13/labx-13-sc-sleuth-db-redis/pom.xml b/labx-13/labx-13-sc-sleuth-db-redis/pom.xml
new file mode 100644
index 00000000..14bc385c
--- /dev/null
+++ b/labx-13/labx-13-sc-sleuth-db-redis/pom.xml
@@ -0,0 +1,95 @@
+
+
+
+ labx-13
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ labx-13-sc-sleuth-db-redis
+
+
+ 1.8
+ 1.8
+ 2.2.4.RELEASE
+ Hoxton.SR1
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ ${spring.boot.version}
+ pom
+ import
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ ${spring.cloud.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+
+ io.lettuce
+ lettuce-core
+
+
+
+
+
+ redis.clients
+ jedis
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-zipkin
+
+
+
+
+ io.opentracing.brave
+ brave-opentracing
+ 0.35.0
+
+
+
+
+ io.opentracing.contrib
+ opentracing-redis-jedis3
+ 0.1.14
+
+
+ io.opentracing.contrib
+ opentracing-redis-spring-data
+ 0.1.14
+
+
+
+
diff --git a/labx-13/labx-13-sc-sleuth-db-redis/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/UserServiceApplication.java b/labx-13/labx-13-sc-sleuth-db-redis/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/UserServiceApplication.java
new file mode 100644
index 00000000..5386ea90
--- /dev/null
+++ b/labx-13/labx-13-sc-sleuth-db-redis/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/UserServiceApplication.java
@@ -0,0 +1,13 @@
+package cn.iocoder.springcloud.labx13.springmvcdemo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class UserServiceApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(UserServiceApplication.class, args);
+ }
+
+}
diff --git a/labx-13/labx-13-sc-sleuth-db-redis/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/config/ZipkinConfiguration.java b/labx-13/labx-13-sc-sleuth-db-redis/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/config/ZipkinConfiguration.java
new file mode 100644
index 00000000..fce875d9
--- /dev/null
+++ b/labx-13/labx-13-sc-sleuth-db-redis/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/config/ZipkinConfiguration.java
@@ -0,0 +1,29 @@
+package cn.iocoder.springcloud.labx13.springmvcdemo.config;
+
+import io.opentracing.Tracer;
+import io.opentracing.contrib.redis.common.TracingConfiguration;
+import io.opentracing.contrib.redis.spring.data.connection.TracingRedisConnectionFactory;
+import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
+
+@Configuration
+public class ZipkinConfiguration {
+
+ // ==================== Redis 相关 ====================
+ @Bean
+ public RedisConnectionFactory redisConnectionFactory(Tracer tracer, RedisProperties redisProperties) {
+ // 创建 JedisConnectionFactory 对象
+ RedisConnectionFactory connectionFactory = new JedisConnectionFactory();
+ // 创建 TracingConfiguration 对象
+ TracingConfiguration tracingConfiguration = new TracingConfiguration.Builder(tracer)
+ // 设置拓展 Tag ,设置 Redis 服务器地址。因为默认情况下,不会在操作 Redis 链路的 Span 上记录 Redis 服务器的地址,所以这里需要设置。
+ .extensionTag("Server Address", redisProperties.getHost() + ":" + redisProperties.getPort())
+ .build();
+ // 创建 TracingRedisConnectionFactory 对象
+ return new TracingRedisConnectionFactory(connectionFactory, tracingConfiguration);
+ }
+
+}
diff --git a/labx-13/labx-13-sc-sleuth-db-redis/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/controller/UserController.java b/labx-13/labx-13-sc-sleuth-db-redis/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/controller/UserController.java
new file mode 100644
index 00000000..eb4f0c47
--- /dev/null
+++ b/labx-13/labx-13-sc-sleuth-db-redis/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/controller/UserController.java
@@ -0,0 +1,27 @@
+package cn.iocoder.springcloud.labx13.springmvcdemo.controller;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/user")
+public class UserController {
+
+ @Autowired
+ private StringRedisTemplate redisTemplate;
+
+ @GetMapping("/get")
+ public String get(@RequestParam("id") Integer id) {
+ this.get("demo");
+ return "success";
+ }
+
+ public void get(String key) {
+ redisTemplate.opsForValue().get(key);
+ }
+
+}
diff --git a/labx-13/labx-13-sc-sleuth-db-redis/src/main/resources/application.yml b/labx-13/labx-13-sc-sleuth-db-redis/src/main/resources/application.yml
new file mode 100644
index 00000000..e83fa357
--- /dev/null
+++ b/labx-13/labx-13-sc-sleuth-db-redis/src/main/resources/application.yml
@@ -0,0 +1,28 @@
+spring:
+ application:
+ name: user-service # 服务名
+
+ # Zipkin 配置项,对应 ZipkinProperties 类
+ zipkin:
+ base-url: http://127.0.0.1:9411 # Zipkin 服务的地址
+
+ # Spring Cloud Sleuth 配置项
+ sleuth:
+ # Spring Cloud Sleuth 针对 Web 组件的配置项,例如说 SpringMVC
+ web:
+ enabled: true # 是否开启,默认为 true
+
+ # 对应 RedisProperties 类
+ redis:
+ host: 127.0.0.1
+ port: 6379
+ password: # Redis 服务器密码,默认为空。生产中,一定要设置 Redis 密码!
+ database: 0 # Redis 数据库号,默认为 0 。
+ timeout: 0 # Redis 连接超时时间,单位:毫秒。
+ # 对应 RedisProperties.Jedis 内部类
+ jedis:
+ pool:
+ max-active: 8 # 连接池最大连接数,默认为 8 。使用负数表示没有限制。
+ max-idle: 8 # 默认连接数最小空闲的连接数,默认为 8 。使用负数表示没有限制。
+ min-idle: 0 # 默认连接池最小空闲的连接数,默认为 0 。允许设置 0 和 正数。
+ max-wait: -1 # 连接池最大阻塞等待时间,单位:毫秒。默认为 -1 ,表示不限制。
diff --git a/labx-13/pom.xml b/labx-13/pom.xml
index 3916fb76..6a2d75ee 100644
--- a/labx-13/pom.xml
+++ b/labx-13/pom.xml
@@ -20,6 +20,7 @@
labx-13-sc-sleuth-dubbo
labx-13-sc-sleuth-db-mysql
+ labx-13-sc-sleuth-db-redis