最近想使用下Feign,然后简单了解了一下,简单的搭了个demo。
首先简单介绍一下Feign,它是一个Http请求客户端,类似HttpClient,具体里面实现还没去看,知道它是一个请求客户端就行,spirng 把这个客户端封装了一下,搞成了注解。
然后这个东西怎么使用呢,首先了解一下大致的构造。
整体模型:要用Feign,必须要以下3个东西
项目A(客户端)、服务中心 (Eureka注册中心)、项目B(服务端),然后把下面三个东西凑齐就可以跑示例了
1.Eureka 注册服务中心:Feign 必须需要 Eureka 注册中心 的支持,就是说,你必须先搭建一个Eureka 注册中心。
去搭建吧:http://www.ityouknow.com/springcloud/2017/05/10/springcloud-eureka.html
如果maven依赖不对,看下这里:https://blog.csdn.net/hh652400660/article/details/79474419
2.服务端:Feign 是客户端,那么必须需要一个服务端才行,所以还得自己建一个服务端,然后这个服务端需要注册到Eureka 注册中心。
spring 官网的demo示例,githup地址:https://github.com/spring-cloud-samples/feign-eureka
代码里2个东西
,把应用注册到 Eureka 注册中心
+
开启一个服务接口
服务端配置文件
3. Feign 客户端,也是spring 官方示例 ~~~
客户端代码里3个东西
,把客户端应用注册到 Eureka 注册中心
+
开启一个服务接口
这个就是 文章 主要的东西,通过这个注解 + 配置文件里 服务端的名字(即服务端注册到Eureka 注册中心 的名字),就能远程调用 服务端的接口了
配置文件我也贴下吧,示例里有
好了,就这3个东西,弄好了,就可以开始运行了
1.启动 Eureka 注册中心 的服务,启动后可以访问,http://localhost:8000/,地址和端口自行调整,我按照上面的设置的 8000端口。
页面这个样子的:
2.启动服务端server,访问接口看看:http://localhost:8111/
访问正常
3.启动Feign 客户端看看,访问地址:http://localhost:8211/,还是8111端口的返回结果
如图:
自己可以关掉其中某个服务试试,再去访问看看效果~~
结束:
整体模型就是下图这个样子,每个项目都可以注册到服务中心的,服务中心也可以是高可用的,今天先到这里,有机会再去试试里面的细节功能,
现在 Eureka 好像闭源了,感觉还没怎么成熟,后面有什么更新再看看去了