SpringCloud系列:4.负载均衡Ribbon及断路器Hystrix

一、负载均衡Ribbon

通过前面的例子,我们已经可以搭建自己的微服务了,例如我们的user-server和book-server,但是他们之前是相互独立的,而实际情况呢,肯定不是这样的。虽然微服务的宗旨之一是解耦,但不意味着服务间完全没有联系,那么在服务间,他们又是怎么通信的呢?

Spring Cloud为我们提供了两种服务调用方式,一种是Ribbon + RestTemplate,另一种是Feign。如标题所示,这一章我们先来看看Ribbon。

Ribbon是什么呢?它一个负载均衡客户端,可以很好的控制http和tcp的一些行为。

负载均衡(Load Balancing, LB),在大型应用上,是一个不得不面对的问题。在微服务架构出现之前,负载均衡方案主要是集中式负载均衡方案,在服务消费者和服务提供者之间有一个独立的负载均衡系统,该系统通常由专门的硬件(如F5)或者基于软件(Visual Studio、HAproxy、nginx等)来承担。

和传统单体应用架构不同,由于微服务架构是由一系列职责单一的细粒度服务构成的分布式网状结构,微服务之间的通信多是通过轻量机制进行,如REST,所以诞生了Ribbon。

Ribbon负载均衡也被称为客户端负载均衡方案,这个解决方案需要配合服务发现功能,在服务消费者启动时需要从服务发现服务器中获取所有服务注册信息,并定时同步这些注册信息。当服务消费者需要访问某个服务时,内置的负载均衡器就会以某种负载均衡策略选择一个目标服务实例,然后在本地所缓存的服务注册表信息中查询该目标服务的具体地址,最后向目标服务发起请求。

我们就来试一试吧,继续之前的项目。在user-server中,我们引入Ribbon的依赖spring-cloud-starter-netflix-eureka-server。

然后在RestTemplate对象上标注@Load

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值