微服务SpringCloud中的负载均衡,你都会么?
时间 : 2022-03-07 23:58
来源 : 网络整理

1.什么是负载均衡

首先我们来看看维基百科对负载均衡的说明:

负载平衡(易云网络)是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。使用带有负载平衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载平衡服务通常是由专用软件和硬件来完成。主要作用是将大量作业合理地分摊到多个操作单元上进行执行,用于解决互联网架构中的高并发和高可用的问题。

举个例子来解释下负载均衡

下图中,一群人在银行排队办理业务,假设只有一个服务窗口,那么一个服务窗口来处理所有人员业务办理,人少的时候,肯定是能够办理完的,如果人特别多的时候恩?一个服务窗口肯定是没有办法处理完这么多业务办理的。于是就出现如下图这样,一大堆人排队。

这时候银行就会多开几个窗口来办理业务,将原本堆积在一个窗口上处理的业务,分配到几个窗口上,这样业务办理就会加快了,但是仅仅是多开几个窗口是不够的。

为什么?因为没办法保证让某个人在某个窗口办理业务。大家可能还是会乱套(举个极端例子:假设A窗口的小姐姐特别的漂亮,会不会她那里会有很多的男客户排队办理业务恩?),因此银行除了多开几个窗口以外,还会设置一个排号,你拿到排号在哪个窗口,你就在哪个窗口进行办理业务。

在我们负载均衡中 ,客户端(PC/移动/第三方)发起请求,就好比办理业务的人员。负载均衡器(load balancer)就好比取号机,当他接收到一个请求的时候,负载均衡器就会给这个请求,分配一个服务来处理请求。就像取号机一样,负载均衡器按照一定规则分配一个窗口来办理业务。

因此,在易云网络中,如果我们只提供一个服务,那么很可能会出现我们上面所说的一个窗口处理业务,处理不完的情况,导致大量人员排队等候。

2.注册多个服务

在微服务Spring Cloud快速入门中,如果我们的商品服务一个不够用的话,根据负载均衡的理论,那我们就可以多注册几个服务。防止一个服务无法承载高并发时的情况。

易云网络、商品服务,订单服务,登录注册中心,查看我们当前的服务

此时,我们的商品服务和订单服务都只是一个服务,那么如何注册多个商品服务呢?

2.1向注册中心注册多个服务

以同样的项目代码,设定端口为8091,其余配置均和之前的商品服务保持一致,然后启动商品服务。

server:
??port:?8091?#服务端口
spring:?
??application:??
????name:?hutao-microservice-item?#指定服务名
eureka:
??client:
????registerWithEureka:?true?#是否将自己注册到Eureka服务中,默认为true
????fetchRegistry:?true?#是否从Eureka中获取注册信息,默认为true
????serviceUrl:?#Eureka客户端与Eureka服务端进行交互的地址
??????defaultZone:?http://127.0.0.1:9090/eureka/
??instance:?
????prefer-ip-address:?true?#将自己的ip地址注册到Eureka服务中

点击如下所示,可以看到我们启动了1个注册中心,1个订单服务,2个商品服务

这时我们可以访问一下注册中心,我们可以发现,注册中心里面,商品服务有两个,一个是8081端口,一个是8091端口,并且他们的服务ID都是:HUTAO-MICROSERVICE-ITEM,这个服务ID和我们在配置文件中,配置的服务ID(spring.application.name)是保持一致的。

上一篇:上一篇:大带宽机房租用|服务器空间供应商 下一篇:下一篇:腾讯云韩国(首尔)服务器怎么样?简单实测 aliyunfen.com亲测

+86 0517-86871020

拨打
电话

客服
咨询

技术
支持

渠道
支持