简介:负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。
负载均衡主要分为软件负载和硬件负载,在微服务盛行的现在,软件负载在微服务里成为主流,netflix的ribbon就是其中之一。
目录
[1.1 负载均衡流程](#1.1 负载均衡流程)
[1.2 负载均衡原理](#1.2 负载均衡原理)
[2.1 负责均衡规则](#2.1 负责均衡规则)
[2.2 负责均衡策略](#2.2 负责均衡策略)
1、负载均衡原理
1.1 负载均衡流程
图 1.1-1 负载均衡流程 |
---|
上图中展示的是负载均衡流程:首先是服务(order-service)发起请求,请求被Ribbon(负载均衡)接收并且去拉取eureka-server的注册信息,让其返回服务列表,在服务列表中选择合适的服务。 |
1.2 负载均衡原理
图 1.2-1 负载均衡原理 |
---|
上图中展示的是负载均衡原理,图中介绍比较详细,这里就不做过多说明了。 其中比较重要的是选择服务列表中的服务对象方法有两个,定义在IRule接口里面:一是轮询调度,而是随机数。 |
2、负载均衡策略
2.1 负责均衡规则
图 2.1-1 负责均衡规则 |
---|
从图中我们可以看到,日常使用的调度规则 "ZoneAvoidanceRule" 集成自轮询调度 |
2.2 负责均衡策略
图 2.2 负责均衡策略 |
---|
上图中展示的是负责均衡策略,有两种方式:一种是在启动类中创建一个 返回IRule的对象,作用域是针对所有的微服务,另一种是修改配置文件。 |
3、饥饿加载
图 3-1 饥饿加载 |
---|
上图中展示的是饥饿加载。 |