zuul 和 feign都集成了ribbon和hystrix, 都能实现远程访问
一般来说zuul的定位是网关,网关的作用是请求路由,相当于你服务的入口。然后根据请求的url不同转发到不同的服务中去。就像nginx的反向代理。
feign则更像是一个请求接口的客户端。就像定义得一样, Spring Cloud 中使用 Feign,可以做到使用 HTTP 请求访问远程服务,就像调用本地方法一样的,开发者完全感知不到这是在调用远程方法,更感知不到在访问 HTTP 请求。代替了我们自己写的httpclient请求。
zuul
作为整个应用的流量入口,接收所有的请求,如app、网页等,并且将不同的请求转发至不同的处理微服务模块,其作用可视为nginx。
feign
则是将当前微服务的部分服务接口暴露出来,并且主要用于各个微服务之间的服务调用。两者的应用层次以及原理均不相同。
feign注重调用的结果。zuul注重请求转发的效率。
原文:https://www.cnblogs.com/zpKang/p/13599810.html