Spring Cloud - Ribbon

    在我们常用的微服务架构中,一般有两种实践方法:基于dubbo的微服务架构、基于SpringCloud的微服务架构。从概念上来讲,Dubbo和SpringCloud并不能放在一起对比,因为Dubbo仅仅是一个RPC框架,实现Java程序的远程调用,实施服务化的中间件则需要自己开发;而SpringCloud则是实施微服务的一系列套件,包括:服务注册与发现、断路器、服务状态监控、配置管理、智能路由、一次性令牌、全局锁、分布式会话管理、集群状态管理等。


    我们现在的项目中,就是基于Dubbo实施服务化,刚开始是基于ZooKeeper进行服务注册与发现。

    要想描述Ribbon,必须先介绍一下Eureka:Eureka是一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。


    可以说,Eureka为Ribbon的顺利应用提供了温室,为什么?来看看解释。

    Ribbon是 Netflix 发布的云中间层服务开源项目,其主要功能是提供客户侧软件负载均衡算法,将 Netflix 的中间层服务连接在一起。它维护了一个服务器列表,如果服务器有宕机现象,Ribbon 能够自行将其剔除;但如果该服务器故障排除,重新启动,或者增加新的负载节点,我们需要手工调用Ribbon 的接口将其动态添加进 Ribbon 的服务器列表。这样明显不够尽如人意。如何能够在服务节点启动时,自行添加服务列表?——Eureka。Eureka 提供了 Application Service 客户端的自行注册的功能。此外,Eureka的缓存机制能够防止大规模宕机带来的灾难性后果。


   在Netflix,典型的部署架构都是多地区、多区域的部署。Eureka为所有Netflix服务提供服务注册。Ribbon客户端的创建和配置 为每个目标服务执行。Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等。Ribbon内置可插拔、可定制的负载均衡组件。

   下面是用到的一些负载均衡策略:
   • 简单轮询负载均衡
   • 加权响应时间负载均衡
   • 区域感知轮询负载均衡
   • 随机负载均衡



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值