nginx负载均衡简介:
首先实现负载均衡比较常见的有nginx反向代理方式,水平扩展方式,一个项目部署多个,端口不一样即可,然后用nginx做负载均衡,客户端通过访问nginx的代理地址,由nginx根据负载均衡策略选择哪个实例提供服务。
而Fegin是基于Ribbon实现的负载均衡,我们只需要把服务名一样,端口不一样的微服务注册到EUREKA,则Fegin客户端调用时将会自动启用负载均衡策略,无需我们用nginx代理。
网上抄一段 Feign和Ribbon区别
Ribbon
Ribbon 是一个基于 HTTP 和 TCP 客户端的负载均衡器
它可以在客户端配置 ribbonServerList(服务端列表),然后轮询请求以实现均衡负载
它在联合 Eureka 使用时
ribbonServerList 会被 DiscoveryEnabledNIWSServerList 重写,扩展成从 Eureka 注册中心获取服务端列表
同时它也会用 NIWSDiscoveryPing 来取代 IPing,它将职责委托给 Eureka 来确定服务端是否已经启动
Feign
Spring Cloud Netflix 的微服务都是以 HTTP 接口的形式暴露的,所以可以用 Apache 的 HttpClient 或 Spring 的 RestTemplate 去调用
而 Feign 是一个使用起来更加方便的 HTTP 客户端,它用起来就好像掉用本地方法一样,完全感觉不到是调用的远程方法
总结起来就是:发布到注册中心的服务方接口,是 HTTP



