03)springcloud学习 Feign负载均衡,Fegin请求时间配置 ,Feign和Ribbon区别

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 的,也可以不用 Ribbon 或者 Feign,直接浏览器一样能够访问

只不过 Ribbon 或者 Feign 调用起来要方便一些,最重要的是:它俩都支持软负载均衡

注意:spring-cloud-starter-feign 里面已经包含了 spring-cloud-starter-ribbon(Feign 中也使用了 Ribbon)

Feign是在 Ribbon的基础上进行了一次改进,是一个使用起来更加方便的 HTTP 客户端

从实践上看,采用feign的方式更优雅(feign内部也使用了ribbon做负载均衡)。

Feign默认就是支持负载均衡的,默认是使用的轮询的方式,测试效果需要部署2个服务提供方,这个和nginx代理一样,nginx代理实现负载均衡也是要部署集群服务的。

一.Feign负载均衡效果测试

1.在启动一个pes-service-02实例,和8013端口的pes-service-02组成集群

1.1 idea已经启动了一个,另外一个就直接打包jar启动了

1.2 打包后把端口改为8014,服务名称依然是 pes-service-02

1.3 启动第二个pes-service-02微服务

1.4 前往Eureka查看,发现pes-service-02下8013,8014端口的微服务都成功挂上了

pes-service-02集群部署成功

1.5 用postman测试 Feign 微服务调用

第一次调用

Feign去访问了8084端口的pes-service-02微服务

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值