前言
Feign是声明式、模板化的HTTP客户端,可以更加快捷优雅的调用HTTP API。在部分场景下和Ribbon类似,都是进行数据的请求处理,但是在请求参数使用实体类的时候显然更加方便,同时还支持安全性、授权控制等。
Feign是集成了Ribbon的,也就是说如果引入了Feign,那么Ribbon的功能也能使用,比如修改负载均衡策略等。
目的
1.springcloud Finchley.SR2版本
2.springboot 版本2.0.6.RELEASE
以consul为服务发现和配置中心的前提下,集成一个针对**springcloud编写用户微服务**的用户消费服务
正文
初始化工程
方法跟**springcloud集成consul**中前期准备工程一般,勾选下列依赖
如果不是上述方法初始化,添加依赖
1 | <dependency> |
在resources文件夹下新增bootstrap.yml文件,写入以下内容
1 | #tomcat启动启动端口 |
添加controller类和feign接口
这里的user类就是springcloud编写用户微服务中jooq-codegen-maven3.10.8生成的实体对象
所以最好是将这些实体模块化,这样在共同需要的地方引用即可,不用像我这样图简便就直接复制过来
1 | @RestController |
20181030更新:get多参数写法
1 | 直接写Long id或者直接是User user这种对象,feign依然会用post方式调用,所以会报错接口不支持 |
最终的工程结构
修改主类
主类上添加@EnableFeignClients注解,否则报错找不到UserFeignClient
集成健康检查和hystrix
添加依赖
1 | 健康检查需加依赖 |
远程配置添加健康检查详细监控以及支持hystrix
1 | #Actuator的健康检查开启所有包括health,info,metrics等 |
修改主类
主类上添加@EnableHystrix注解,否则没有/actuator/hystrix.stream信息,另外上面的配置需要打开,不然没数据