07-Eureka-提供者与消费者_哔哩哔哩_bilibili学习笔记
目录
Eureka
介绍
Eureka是一个基于REST的服务,主要用于AWS云中的定位服务,以实现中间层服务器的负载平衡和故障转移
在 Spring Cloud 微服务架构中通常用作注册中心
我们称这个服务为 Eureka Server,还有一个与之交互的客户端称之为 Eureka Client
搭建EurekaServer
引入依赖
<!--eureka服务端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
编写启动类,添加@EnableEurekaServer注解
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args){
SpringApplication.run(EurekaApplication.class,args);
}
}
添加application.yml文件,编写下面配置
server:
port:10086 # 服务端口
spring:
application:
name: eurekaserver #eureka的服务名称
eureka:
client:
service-url: #eureka的地址信息
defaultZone: http://127.0.0.1:10086/eureka
注册user-service
1、在user-service项目引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2、在application.yml文件编写下面配置
spring:
application:
name: userservice
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka
Ribbon
介绍
Ribbon是Netflix公司提供的一个在Spring Cloud中免费使用的客户端负载均衡器组件。
它在集群中为各个客户端之间的通信提供支持,可以控制、管理HTTP和TCP客户端的负载均衡。
Ribbon从Eureka注册获取访问服务提供者地址列表后,就可基于某种负载均衡算法,自动地帮助服务消费者去请求。
通过定义IRule实现可以修改负载均衡规则
代码方式:在Application类中定义一个新的IRule
@Bean
public IRule randomRule(){
return new RandomRule();
}
配置文件方式:在yml文件中,添加新的配置也可以修改 规则
userservice: # 给某个微服务配置负载均衡规则,这里是userservice服务
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则
饥饿加载
ribbon:
eager-load:
enabled: true
clients: userservice