美文网首页
如何优雅的替换eureka

如何优雅的替换eureka

作者: 刘勇_leo | 来源:发表于2021-12-10 18:10 被阅读0次

背景

由于eureka注册中心是springBoot Cloud第一代原生的注册中心,因此早期的微服务项目都会使用eureka作为注册中心,但是eureka由于定时刷新与多个cache的设计,在服务上下线时存在较高的延迟,从而降低服务可用性!

方案

切换注册中心,由于微服务相对依赖,因此无法直接舍弃旧的注册中心,所以只能是多个注册中心同时存在

实际选型

国内只有阿里的nacos在性能与文档都是很成熟的,因此选择nacos

核心功能

  1. 服务注册方: 可以同时对多个注册中心进行注册本机
  2. 服务发现方: 可以使用多个注册中心进行实例获取且可以在运行时自由切换
  3. 兼容ribbon,从而对于feign服务调用无业务改动

亮大招

  1. 核心思路
    通过二次封装eureka 与 nacos 各自client,利用各自client注册与发现的功能,并且绕开ribbon cache,只使用client这一层cache,进一步降低上下线变更延迟!
  2. github仓库
    https://github.com/saydad/MutilDiscovryRibbon
  3. 服务调用方接入方式
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
    <version>2.1.5.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    <version>2.1.5.RELEASE</version>
</dependency>
<dependency>
    <groupId>com.boom</groupId>
    <artifactId>mutil-discovry-ribbon</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
server:
  port: 8899

spring:
  application:
    name: metirc-parser
    
discovery:
  multi:
    #开启功能
    enabled: true
  eureka:
    #开启eureka
    enabled: true
    address: http://127.0.0.1:8700/eureka
    #拉取实例列表的优先级,值越大优先级越高
    priority: 1
    #是否注册自身
    register: false
    #eureka刷新cache的延迟(秒)
    refresh-interval: 2
  nacos:
    enabled: true
    address: 127.0.0.1:8848
    priority: 2
    register: false
  1. 服务注册方接入方式
<dependency>
    <groupId>com.boom</groupId>
    <artifactId>mutil-discovry-ribbon</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
server:
  port: 8899

spring:
  application:
    name: metirc-parser
    
discovery:
  multi:
    enabled: true
  eureka:
    enabled: true
    address: http://127.0.0.1:8700/eureka
    priority: 1
    #注册自身
    register: true
  nacos:
    enabled: true
    address: 127.0.0.1:8848
    priority: 2
    register: true
  1. 使用说明
    使用时jar包需要自行发布到私有仓库,README中对上线、下线操作时eureka、nacos注册变更的对比与测试代码,同时有代码详细简绍!

最后

希望实现思路对各位有所帮助!! 如果有帮助,给楼主点个star呀!

相关文章

网友评论

      本文标题:如何优雅的替换eureka

      本文链接:https://www.haomeiwen.com/subject/vezcfrtx.html