搭建Eureka服务
Eureka的作用
- 消费者如何获取服务提供者的具体信息
- eureka也是服务,它会将自己也提交到注册中心,用于eureka集群之间通信
- 服务提供者启动时,向eureka注册自己的信息
- eureka保存这些信息
- 服务消费者根据服务名称向eureka拉取提供者的信息
- 如果有多个服务提供者,消费者该如何选择
- 服务消费者根据负载均衡算法,从服务列表中挑选一个
- 先非洲如何感知服务提供者的健康状态
- 服务提供者会每隔30s向注册中心发送心跳请求,报告健康状态
- eureka会更新记录服务列表信息,心跳不正常会被剔除
- 消费者就可以拉取到最新的信息
添加依赖
<dependency> |
启动注解
@EnableEurekaServer
|
配置文件
application.yml
server: |
注册服务
引入依赖
<dependency> |
配置文件
spring: |
部署多个实例
IDEA
服务拉取
Service,OrderService
|
启动类,@LoadBalanced负载均衡配置
/** |
Ribbon负载均衡
负载均衡原理
负载均衡策略
Ribbon的负载均衡规则是一个叫做
IRule
的接口来定义的,每一个子接口都是一种规则
类名 | 规则描述 |
---|---|
RoundRobinRule | 轮询规则,默认方法 |
AvailabilityFilteringRule | 忽略并发过高和短路状态的服务器 |
WeightedResponseTimeRule | 权重规则 |
ZoneAvoidanceRule | 以区域可用的服务器为基础进行服务器的选择。 |
BestAvailableRule | 忽略那些短路的服务器,并选择并发数较低的服务器。 |
RandomRule | 随机规则 |
RetryRule | 重试机制的选择逻辑 |
配置方法
在启动类中重写方法,返回值为你要的规则
public IRule randomRule(){
return new RandomRule();
}或者在
application.yml
中配置userServer:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule# 负载均衡规则
懒加载
Ribbon默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长。
而饥饿加载则会在项目启动时创建,降低第一次访问的耗时。
ribbon: |