SpringCloud之Eureka注册中心

SpringCloud之Eureka注册中心,第1张

SpringCloud之Eureka注册中心 SpringCloud之Eureka注册中心

标签(空格分隔): springCloud Eureka Ribbon


Eureka注册中心

服务提供者在启动时,会将每个服务都注册到注册中心,消费者在使用时,会去注册中心拉取服务,然后向提供者发送请求,
服务消费者会利用负载均衡选择调用某个服务
为确保服务是可用的,服务提供者会每30秒向注册中心发送心跳续约,

Eureka依赖引入 服务端依赖
    
        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
服务拉取
  1. 修改消费者代码,访问的URL路径,用服务名代替ip,端口
    String url = “http://userService/user/”+order.getUserId()
  2. 在消费者启动类中的RestTemplate添加负载均衡注解,
    @LoadBalanced
Ribbon负载均衡 负载均衡策略

通过定义IRule实现可以修改负载均衡规则,有两种方法
1、 代码方式,在orderservice中的启动类中,定义一个新的IRule(作用于全局,访问每个服务提供者都是随机)

@Bean
public IRule randomRule(){
    return new RandomRule;//随机
}

2、 配置文件方式,在application.yml中添加配置(针对某个微服务)

userservice.ribbon.NFLoadBalancerRuleClassName:com.netflix.loadbalancer.RandomRule
Ribbon饥饿加载

ribbon默认采用懒加载,也就是第一次访问时才会创建LoadBalancerClient,请求时间会很长,饥饿加载会在项目启动的时候创建LoadBalancerClient,降低第一次访问的耗时,设置方法如下

ribbon.eager-load.enable = true
ribbon.eager-load.clients = userservice

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5683781.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存