这是本人自己记录的springcloud知识,相应源码在https://github.com/shijingfeng/spring-cloud-actual.git
什么是负载均衡
1. LB,即负载均衡(Load Balance),负载均衡是微服务架构中经常使用的一种技术。 负载均衡是我们处理高并
发、缓解网络压力和进行服务端扩容的重要手段之一,简单的说就是将用户的请求平摊的分配到多个服务
2. 负载均衡可通过 硬件设备 及 软件 进行实现,软件比如:Nginx等,硬件比如:F5等
3. 负载均衡相应的在中间件,例如:Dubbo 和 SpringCloud 中均给我们提供了负载均衡组件
用户请求先到达负载均衡器(也相当于一个服务),负载均衡器根据负载均衡算法将请求转发到微服务。负载均衡器维护一份服务端列表,根据负载均衡算法 将请求转发到相应的微服务上,负载均衡 算法有:轮训、随机、加权轮训、加权随机、地址哈希等方法,所以负载均衡可以为微服务集群分担请求,降低系统的压力。
Ribbon 服务调用配置实战
无需新增新服务,在消费者端通过 Ribbon 进行实现负载均衡即可
修改消费者服务的POM文件
由于依赖了spring-cloud-starter-netflix-eureka-client,会自动添加spring-cloud-starter-netflix-ribbon依赖
修改消费者服务的application.yml
修改消费者的configbean
修改消费者控制层 ProductController_Consumer
在主启动类 MicroserviceProductConsumer_80 上添加注解 @EnableEurekaClient
功能测试
http://localhost/consumer/product/get/1
http://localhost/consumer/product/list
Ribbon 负载均衡实战
Ribbon 负载均衡架构
第1步先选择 Eureka Server ,它优先选择在同一个区域内负载较少的server
第2步再根据用户指定的策略,在从 Eureka Server 获取的服务注册列表中选择一个地址。 其中Ribbon提供
再新建一个提供者服务
复制8001服务为8002服务,8002服务访问得数据库是另外一个
8002服务与8001区别在于端口,与访问得数据库不一致。其他都一致