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