1.Eureka中增加自定义的元数据,标识同组服务 不同的版本,可以yml中添加下面配置
---
spring:
profiles: 7001
server:
port: 7001
eureka:
instance:
metadata-map:
version: v1
---
spring:
profiles: 7002
server:
port: 7002
eureka:
instance:
metadata-map:
version: v2
2. zuul工程中引入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
3.新建一个GrayFilter, 这里模拟1号用户为特殊的用户,走v1服务。
@Configuration
public class GrayFilter extends ZuulFilter {
@Override
public String filterType() {
return FilterConstants.ROUTE_TYPE;
}
@Override
public int filterOrder() {
return 0;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() throws ZuulException {
RequestContext currentContext = RequestContext.getCurrentContext();
HttpServletRequest httpServletRequest = currentContext.getRequest();
String userid = httpServletRequest.getHeader("userid");
System.out.println("userid:"+userid);
if("1".equals(userid)){
RibbonFilterContextHolder.getCurrentContext().add("version","v1");
}
return null;
}
}
4. 使用jmeter配置,添加HTTP信息头管理
5. 添加Header参数