参考博客:https://www.cnblogs.com/l-y-h/p/14238203.html
一、负载均衡 的引入:
Load balancing (负载均衡),是一种计算机技术,用来在多个计算机(通常指计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载;
目的:为了达到资源最优化使用,达到最大化吞吐率、最小化响应时间、同时避免过载的目的;
举例:当早上地铁高峰期的时候,紧挨小区的地铁口人会特别多,且人多的时候会限流,但是有些地铁口人少,地铁工作人员就会拿着喇叭或者广播通知哪个地铁口人少,通知乘客去往地铁口人少的地方;
在这个例子中,乘客比作需要获取资源运行的程序,或者请求接口,地铁口就是资源或者请求地址,地铁工作人员就是负载均衡的;
为了提高网站的各方面的能力,一般会把多台机器组成一个集群对外提供服务。比如我们访问 www.bilibili.com,当用户在浏览器访问的时候,如何将用户的请求分发到集群中不同的机器上呢,这个就是负载均衡处理的事情;
总结:意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。
项目地址:https://gitee.com/wminlin/service-registry.git
【问题】:
在Eureka 篇中,通过在 Eureka 作为注册中心,并使用 RestTemplate 进行服务调用,那么是通过什么进行负载均衡的?
【解决】:
在 @Bean 声明 RestTemplate 时,添加一个 @LoadBalanced,并使用 注册中心 作为 RestTemplate 的 URL 地址(IP、端口号);
通过简单的两步,实现了负载均衡;
【涉及到的技术】:
Ribbon (维护状态,替代产品为 Loadbalancer)
OpenFeign (推荐使用)
【说明】:
此处还是以项目地址上的 eureka_server_7000、eureka_client_producer_8001、eureka_client_consumer_9001 三个模块来举例使用;

浙公网安备 33010602011771号