浅学习使用Ribbon 和 Feign的理解和使用

 

Ribbon是Netflix公司开源的一个负载均衡的项目,是一个基于 HTTP、TCP的客户端负载均衡器.

什么是负载均衡?

        负载均衡是微服务架构中必须使用的技术,通过负载均衡来实现系统的高可用、集群扩容等功能。负载均衡可通过
硬件设备及软件来实现,硬件比如:F5、Array等,软件比如:LVS、Nginx等。

浅学习使用Ribbon 和 Feign的理解和使用_第1张图片

常用的负载均衡算法有: 轮循、随机、加权轮循、加权随机、地址哈希等方法。

上面的都是服务端负载均衡,客户端负载均衡与服务端负载均衡的区别在于客户端要维护一份服务列表,Ribbon从
Eureka Server获取服务列表,Ribbon根据负载均衡算法直接请求到具体的微服务,中间省去了负载均衡服务器。

   

         浅学习使用Ribbon 和 Feign的理解和使用_第2张图片

1. 导入Ribbon依赖


            org.springframework.cloud
            spring-cloud-starter-ribbon
            1.3.6.RELEASE

2. application.yml中配置ribbon参数

ribbon:
  MaxAutoRetries: 2 #最大重试次数,当Eureka中可以找到服务,但是服务连不上时将会重试
  MaxAutoRetriesNextServer: 3 #切换实例的重试次数
  OkToRetryOnAllOperations: false #对所有操作请求都进行重试,如果是get则可以,如果是post,put等操作没有实现幂等的情况下是很危险的,所以设置为false
  ConnectTimeout: 5000  #请求连接的超时时间
  ReadTimeout: 6000 #请求处理的超时时间

3.负载均衡测试
1. 启动两个负载均衡服务时,注意端口要不一致. 启动完成观察Eureka Server的服务列表。

2.注入RestTemplate,添加 @LoadBalanced 注解。

       浅学习使用Ribbon 和 Feign的理解和使用_第3张图片

3.测试。 rest请求路径上更换服务名

           浅学习使用Ribbon 和 Feign的理解和使用_第4张图片

浅学习使用Ribbon 和 Feign的理解和使用_第5张图片

Feign介绍

Feign是Netflix公司开源的轻量级rest客户端,使用Feign可以非常方便的实现Http 客户端。Spring Cloud引入
Feign并且集成了Ribbon实现客户端负载均衡调用。

 

 
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
        

          浅学习使用Ribbon 和 Feign的理解和使用_第6张图片

   启动类中加入@EnableFeignClients注解,并进行测试。

你可能感兴趣的:(Java)