负载均衡
负载均衡:有两个用途,1. 将负载均衡的分配到多个处理节点上,减少单个处理节点的请求量,提升整体系统的性能。2. 作为流量入口,对请求方屏蔽服务节点的部署细节,实现对业务方无感的扩容。
可以分为两大类:一类是代理类的负载均衡服务;另一类是客户端负载均衡服务。
- 代理类的负载均衡服务以单独的服务方式部署,请求先经过负载均衡服务,由负载均衡服务选出一个合适的服务节点后,来实现流量的分发。常见的比较著名的代理服务有lvs和nginx; LVS一般称为四层负载;Nginx一般称为七层负载。lvs性能比nginx好,但lvs工作在tcp层,请求的 URL是七层的概念,不能针对 URL做更细致的请求分发,而且 LVS也没有提供探测后端服务是否存活的机制。一般这么认为LVS适合在入口处承担大流量的请求分发,Nginx部署在业务服务器之前做更细维度的请求分发。
- 客户端负载均衡,也就是把负载均衡的服务内嵌在客户端中。这类一般会结合注册中心使用,客户端从注册中心中获取服务的列表,根据策略选取一个合适的节点,分发请求到该节点。
- 负载均衡策略一般可分为两类:静态策略、动态策略
- 静态策略:指选择服务节点时,不会参考后端服务的实际运行状态。常见的静态策略有:轮询、加权轮询、hash算法等
- 动态策略:会参考后端服务的一些特性,来决定要选择哪个服务节点。负载均衡服务收集后端服务的调用信息,例如连接数、响应时间等,根据收集的信息进行负载均衡。
API网关
API 网关不是一个组件ÿ