实用篇
Eureka
eureka原理分析
erueka提供了一个注册中心,服务提供者在注册中心注册后,消费者可在注册中心拉取服务
总结
搭建eureka
1.引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2.添加注解
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class,args);
}
}
3.编写application.yml配置
server:
port: 10086 #服务端口
spring:
application:
name: eurekaserver #eureka的服务名称
eureka:
client:
service-url: #eureka的地址信息
defaultZone: http://127.0.0.1:10086/eureka/
eureka服务注册
1.添加依赖
<!--eureka服务依赖-->
<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/
3.添加EnableEurekaClient注解
@MapperScan("cn.itcast.user.mapper")
@SpringBootApplication
@EnableEurekaClient
public class UserApplication {
public static void main(String[] args) {
SpringApplication.run(UserApplication.class, args);
}
}
服务发现
1.修改orderservice中的访问路径
String url = "http://userservice/user/" + order.getUserId();
2.在启动类中添加负载均衡注解
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
总结
Ribbon负载均衡
负载均衡流程
负载均衡策略
修改负载均衡规则
1.配置bean
@Bean
public IRule randomRule(){
return new RandomRule();
}
2.配置文件方式
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则
饥饿加载
在application.yml中增加如下配置
ribbon:
eager-load:
enabled: true #开启饥饿加载
clients: #指定饥饿加载的服务名称
- userservice