1. 概述
1.1 插件名称
- SpringCloud插件
1.2 适用场景
- 用来将
http协议转成Spring Cloud协议。 - 用于SpringCloud微服务灰度流量控制。
1.3 插件功能
- 将
http协议转成Spring Cloud协议。
1.4 插件代码
-
核心模块
shenyu-plugin-springcloud -
核心类
org.apache.shenyu.plugin.springcloud.SpringCloudPlugin
1.5 添加自哪个shenyu版本
- 2.4.0
2. 如何使用插件
-
引入相关依赖,开启插件,请参考:Spring Cloud快速开始 。
-
Spring Cloud应用客户端接入,请参考:Spring Cloud服务接入 。
2.1 插件使用流程图

2.2 导入pom
- Eureka Registry
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-plugin-springcloud</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>${eureka-client.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-commons</artifactId>
<version>${spring-cloud-commons.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-plugin-httpclient</artifactId>
<version>${project.version}</version>
</dependency>
- Nacos Registry
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-plugin-springcloud</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${nacos-discovery.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-commons</artifactId>
<version>${spring-cloud-commons.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-plugin-httpclient</artifactId>
<version>${project.version}</version>
</dependency>
2.3 在ShenYu Bootstrap配置SpringCloud
2.3.1 配置SpringCloud的Eureka服务注册发现
spring:
cloud:
discovery:
enabled: true
eureka:
client:
enabled: true
serviceUrl:
defaultZone: http://localhost:8761/eureka/
instance:
prefer-ip-address: true
2.3.2 配置SpringCloud的Nacos服务注册发现
spring:
cloud:
discovery:
enabled: true
nacos:
discovery:
server-addr: 127.0.0.1:8848 # Spring Cloud Alibaba Dubbo use this.
enabled: true
namespace: ShenyuRegisterCenter
2.3.3 配置SpringCloud插件负载均衡
注意
在ShenYu 2.5.0(包括)之后,ShenYu使用自有的
shenyu-loadbalancer作为负载均衡客户端,你只 需要在springcloud插件的规则配置中配置负载均衡。 如果你没有配置负载均衡,将使用默认的roundRobin算法。在ShenYu 2.4.3(包括)之前,ShenYu使用
Ribbon作为负载均衡客户端,你必须如下配置负载均衡。
spring:
cloud:
loadbalancer:
ribbon:
enabled: true