声明式服务调用,写出一个公共的项目提供项目的实体和接口,该项目中的接口是为服务提供者和服务消费者之间提供一套标准,该标准能够直接限制服务的提供和消费。
Feigh整合Ribbon和Hystrix 提供负载均衡和断路器,可以进行Ribbon和Hystrix 配置
禁用Hystrix
全局禁用:feign.hystrix.enabled=false
局部禁用:
@Bean
@Scope(“prototype”)
public Feign.Builder feignBuider(){
return Feign.builder();
}
在服务调用声明的时候,加入configuration=配置类的.class
Feign的熔断机制应该是实现公共的接口,在@FeignClient 加入参数 fallback = 回调类.class
Feign 对请求体的压缩,feign.compression.request.enabled=true feign.compression.response.enabled=true
feign.compression.request.min-types=text/xml,application/xml,application/json
feign.compression.request.min-request-size=true
login.level.com.didispace.web.HelloService = DEBUG
配置中加入
@Bean
Logger.Level feignLoggerLevel(){
return Logger.Level.FULL;
}
NONE 不记录任何信息
BASIC 记录请求URI 返回状态码 响应头的信息
FULL 记录所有的信息
HEADERS 除了BASIC之外的信息,还是会记录请求和响应头的信息
API网关Springcloud 的 zuul
使用EnableZuulProxy 开始API的网关服务
传统路由:
单实例:zuul.routes..path = ‘’
zuul.routes..url = ‘’
zuul:
routes:
wap:
path: /wap/**
url: http://192.168.1.10:8081
多实例:zuul.routes..path = ‘’
zuul.routes..serviceId = ‘’
ribbon.eureka.enabled = false
.ribbon.listOfServices = http://localhost:8088/,http://localhost:8555/
zuul:
routes:
wap:
path: /wap/**
serviceId: wap
ribbon:
eureka:
enabled: false
wap:
ribbon:
listOfServers: http://192.168.1.10:8081, http://192.168.1.11:8081
forward:
zuul:
routes:
wap:
path: /wap/**
url: forward:/wap
面向服务的配置:
zuul.routes..path = ‘’
zuul.routes..serviceId = ‘’
简化的配置:zuul.routes.serviceId = path
zuul整合client-eureka 就可以将注册中心的服务自动加上路由前缀,默认的规则就是将服务名加入请求地址的前面
在使用时如果存在不想对外开放的地址,zuul.ignore-service = ‘’;则不会创建路由地址
serviceId映射
zuul:
routes:
activity: /activity/**
zuul:
routes:
activity:
path: /activity/** # 指定
serviceId: micro-activity # 指定路由的serviceId
stripPrefix: false
userService-v1 对应 /v1/userService/** 的路由规则
@Bean
public PatternServiceRouteMapper serviceRouteMapper(){
return PatternServiceRouteMapper(
"(?<name>^.+)-(?<version>v.+$)",
"${version}/${name}"
);
}
无论是何种配置方式都是需要定义匹配方式,zuul中的配置采用Ant风格。
? 配任意单个字符
* 任意数量的字符
** 配任意数量的字符,可以匹配多级目录