标签(空格分隔): springCloud Eureka Ribbon
Eureka注册中心
服务提供者在启动时,会将每个服务都注册到注册中心,消费者在使用时,会去注册中心拉取服务,然后向提供者发送请求,
服务消费者会利用负载均衡选择调用某个服务
为确保服务是可用的,服务提供者会每30秒向注册中心发送心跳续约,
客户端依赖org.springframework.cloud spring-cloud-starter-netflix-eureka-server
编写启动类--> org.springframework.cloud spring-cloud-starter-netflix-eureka-client
在启动类添加**@EnableEurekaServer**注解
编辑配置文件需要在配置文件中声明 服务端口,服务名称,注册地址
##服务端配置文件
server.port = 10086 #服务端口号,可随意取
spring.application.name = eurekaServer #服务端名称
eureka.client.service-url.defaultZine = http://localhost:10086/eureka #注册中心地址
server.port = 8080 #数据库相关配置 spring.datasource.url = jdbc:mysql://localhost:3306/cloud_order?useSSL=false&&serverTimezone=UTC spring.datasource.username = root spring.datasource.password = root spring.datasource.driver-class-name = com.mysql.cj.jdbc.driver #服务名称 spring.application.name = orderService #eureka相关配置 eureka.client.service-url.defaultZone = http://localhost:10086/eureka服务拉取
- 修改消费者代码,访问的URL路径,用服务名代替ip,端口
String url = “http://userService/user/”+order.getUserId() - 在消费者启动类中的RestTemplate添加负载均衡注解,
@LoadBalanced
通过定义IRule实现可以修改负载均衡规则,有两种方法
1、 代码方式,在orderservice中的启动类中,定义一个新的IRule(作用于全局,访问每个服务提供者都是随机)
@Bean public IRule randomRule(){ return new RandomRule;//随机 }
2、 配置文件方式,在application.yml中添加配置(针对某个微服务)
userservice.ribbon.NFLoadBalancerRuleClassName:com.netflix.loadbalancer.RandomRuleRibbon饥饿加载
ribbon默认采用懒加载,也就是第一次访问时才会创建LoadBalancerClient,请求时间会很长,饥饿加载会在项目启动的时候创建LoadBalancerClient,降低第一次访问的耗时,设置方法如下
ribbon.eager-load.enable = true ribbon.eager-load.clients = userservice
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)