什么是Ribbon?
Spring Cloud Ribbon 是一个负载均衡解决方案,Ribbon是Netflix发布的负载均衡器,
Spring Cloud Ribbon是基于Netflix Ribbon实现的,是一个用于对HTTP请求进行控制
的负载均衡客户端。
在注册中心对Ribbon进行注册之后,Ribbon就可以基于某种负载均衡算法(轮询、随机等)自动帮助服务消费者调用接口。
Eureka Server提供所有可以调用的服务提供者列表,Ribbon基于特定的负载均衡算法
从这些服务提供者中选择要调用的具体实例。
代码实现
1.创建Module, 名字叫ribbon,pom.xml加入依赖
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.0.2.RELEASE</version>
</dependency>
</dependencies>
2.创建配置文件application.yml
server:
port: 8040
spring:
application:
name: ribbon
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
instance:
prefer-ip-address: true
3.创建启动类
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
public class RibbonApplication {
public static void main(String[] args) {
SpringApplication.run(RibbonApplication.class,args);
}
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
注解说明:
@LoadBalanced :声明一个基于Ribbon的负载均衡。