目录
1. 前言
Ribbon
是 Netflix
开发的一个负载均衡组件,它在服务体系中起着重要作用,与其他 SpringCloud
组件结合可以发挥出强大作用,它的负载策略有多种,默认轮询
说到负载均衡,ribbon
与 lvs、nginx
不一样,nginx
是服务端负载均衡,ribbon
是客户端负载均衡,具体表现为客户端从注册中心拿到服务的所有实例,然后以负载均衡方式去调用服务,默认以轮询的方式去调用服务实例
ribbon
与 eureka
配合使用的大致架构如下
2. ribbon
实现负载均衡
在 上一篇 文章中,已实现 eureka
客户端的注册行为,本篇文章将实现 eureka
客户端的调用,即服务提供方提供接口供服务消费方来消费,调用,并实现 ribbon
的客户端负载均衡
依然使用上一篇文章的项目,如下
2.1. Maven
主要依赖
eureka-client-consumer
服务消费方项目添加如下依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
spring-cloud-starter-netflix-eureka-client
:如果已经引入了这个eureka
客户端的依赖,此时可以不需要引入上述spring-cloud-starter-netflix-ribbon
依赖了,因为eureka
客户端的依赖已经包含了
spring-cloud-starter-netflix-ribbon
依赖eureka-client-producer
:作为服务的提供方,需要提供接口供消费方使用。这里我们可以连接数据库,至于连接数据库,以及ORM
持久层框架的依赖,这里不再赘述,自己引入即可
2.2. application.properties
配置文件
2.2.1. eureka-client-producer
服务提供方
server.port=8080
#注册进eureka的名称
spring.application.name=eureka-client-producer
#JDBC 配置
spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/shiro?characterEncoding=utf8&useSSL=false&autoReconnect=true&serverTimezone=UTC
spring.datasource.druid.username=root
spring.datasource.druid.password=123456
spring.datasource