精华内容
下载资源
问答
  • spring cloud 服务注册中心eureka集群搭建

    spring cloud 服务注册中心eureka高可用集群搭建

    一,准备工作

    eureka可以类比zookeeper,本文用三台机器搭建集群,也就是说要启动三个eureka注册中心
    

    本文三台eureka的地址分别为:本机(htttp://10.25.25.92:8080),远程服务器1(http://10.25.25.24:8080)远程服务器2(http://10.25.25.39:8080)。三台注册中心准备完毕

    二,集群配置

    application.yml配置

    在上一章中通过下面两个配置来实现不向注册中心注册自己,eureka高可用实际上就是将自己作为服务向其他服务注册中心注册自已,这样就可以形成一组互相注册的服务注册中心,以实现服务清单的互相同步,达到高可用的效果。

    eureka: 
      client: 
        #register-with-eureka: false     #false表示不向注册中心注册自己。
        #fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务

    这里将这两个配置注释掉,具体如下

    2.1,本机配置
    server: 
      port: 8080
    
    eureka: 
      instance:
        hostname: 10.25.25.92 #eureka服务端的实例名称
      client: 
        #register-with-eureka: false     #false表示不向注册中心注册自己。
        #fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
        service-url: 
          #单机 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/       #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
          defaultZone: http://10.25.25.24:8080/eureka/,http://10.25.25.39:8080/eureka/
    2.2,远程服务器1配置
    server: 
      port: 8080
    
    eureka: 
      instance:
        hostname: 10.25.25.24 #eureka服务端的实例名称
      client: 
        #register-with-eureka: false     #false表示不向注册中心注册自己。
        #fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
        service-url: 
          #单机 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/       #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
          defaultZone: http://10.25.25.92:8080/eureka/,http://10.25.25.39:8080/eureka/
    2.3,远程服务器2
    server: 
      port: 8080
    
    eureka: 
      instance:
        hostname: 10.25.25.39 #eureka服务端的实例名称
      client: 
        #register-with-eureka: false     #false表示不向注册中心注册自己。
        #gfetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
        service-url: 
          #单机 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/       #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
          defaultZone: http://10.25.25.92:8080/eureka/,http://10.25.25.24:8080/eureka/

    pom中添加如下插件

    使用这个插件执行 mvn install 生成jar包,可以使用 Java -jar **.jar 的命令启动jar包

     <build>
            <plugins>               
                <plugin><!-- 项目的打包发布 -->
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <!-- 主启动类 -->
                        <mainClass>com.baosight.DemoApplication</mainClass>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

    执行 mvn install 生成jar包,复制到对应的两台远程服务器里,分别启动
    这里写图片描述
    浏览器访问http://localhost:8080
    这里写图片描述
    可以看到10.25.25.24和10.25.25.39的eureka注册中心,有三个微服务注册到本机的注册中心,分别是http://10.25.25.92:8080/eureka/http://10.25.25.24:8080/eureka/http://localhost:8080/eureka,既是注册中心也是

    三,eureka client配置

    application.yml配置

    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8080/eureka/,http://10.25.25.25:8080/eureka/,http://10.25.25.39:8080/eureka/
    #  instance:
    #    instance-id: microservicecloud-8762
    #    prefer-ip-address: true     #访问路径可以显示IP地址  
    server:
      port: 8762
    spring:
      application:
        name: springboot-eureka-clent

    启动eureka client
    分别访问 http://10.25.25.24:8080/http://10.25.25.39:8080/http://localhost:8080/
    这里写图片描述
    可以看到三个注册中心都注册了 springboot-eureka-clent 。

    四,测试

    4.1 修改 eureka client 配置

    application.yml配置

    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8080/eureka/
      instance:
        instance-id: microservicecloud-8762
        prefer-ip-address: true     #访问路径可以显示IP地址  
    server:
      port: 8762
    spring:
      application:
        name: springboot-eureka-clent

    重启eureka client 可以看到,三个注册中心依然都注册有 eureka client ,这是因为eureka是通过在各个节点进行复制来达到高可用的目的。停掉本机eureka服务,刷新另外俩个eureka页面
    这里写图片描述
    可以看到,eureka客户端是注册到本机注册中心的,本机的注册中心已经停掉,但是eureka客户端依然注册到另外两个注册中心了,这样就避免了单点故障后的整体服务发现的瘫痪,说明eureka注册中心高可用集群发挥了作用
    源代码下载

    展开全文
  • Eureka server高可用集群搭建的步骤: 导入依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId...

    Eureka server高可用集群搭建的步骤:

    1、导入依赖

          <dependency>

              <groupId>org.springframework.cloud</groupId>

              <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

          </dependency>

    2、启动类开启注解@EnableEurekaServer

    3、配置文件中配置参数

    单机版的配置如下

    server:

      port: 8887

    eureka:

      instance:

        hostname: localhost

      client:

        #表示是否将自己注册到Eureka Server,默认为true

        registerWithEureka: false

        #要不要去注册中心获取其他服务的地址

        fetchRegistry: true

        serviceUrl:

          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

    集群版修改配置文件、需要修改的地方:

         1、端口号

         2、registerWithEureka集群模式设置为true

         3、defaultZone地址设置为集群地址

    server:

      port: 8888

    eureka:

      instance:

        hostname: localhost

      client:

        #表示是否将自己注册到Eureka Server,默认为true

        registerWithEureka: true

        #要不要去注册中心获取其他服务的地址

        fetchRegistry: true

        serviceUrl:

          defaultZone: http://localhost:8888/eureka/,http://localhost:8887/eureka/

    4、分别启动两个eureka节点即可

     

    展开全文
  • Eureka高可用集群搭建

    2019-08-28 19:44:02
    搭建成功的正常情况: 过一会儿就出现受保护的警告: Renews threshold:期望每分钟达到的心跳次数。(默认计算方式:2 * n * 0.85,n是服务器数量,如果注册中心进行自己注册自己的话,也要算上) 因为每分钟...

    机器:Eureka1、Eureka2、Users
    搭建成功的正常情况:

    过一会儿就出现受保护的警告:

    Renews threshold:期望每分钟达到的心跳次数。(默认计算方式:2 * n * 0.85,n是服务器数量,如果注册中心进行自己注册自己的话,也要算上)
    因为每分钟服务实例默认向注册中心发送心跳间隔是30秒,所以是2。可以通过eureka.instance.lease-renewal-interval-in-seconds来进行设置。

    续约比例默认是0.85,可以通过eureka.server.renewal-percent-threshold来设置续约比例。

    如果修改了以上两个属性的默认值,那么计算方式把对应的项改成设置后的再进行计算。

    Renews (last min):上一分钟的心跳次数。

    主要是因为在15分钟内,实际心跳的次数未达到期望心跳次数的百分之八十五。

    EurekaServer的application配置:

    # 应用名
    spring:
      application:
        name: EurekaServer
      profiles:
        active:
        - server1

    Eureka1配置:

    # 服务端口
    server:
      port: 8761
    eureka:
      instance:
    # 注册中心地址
        hostname: eurekaServer1
      client:
    # 是否从注册中心获取注册表信息
        fetchRegistry: false
    # 是否向注册中心注册自己
        register-with-eureka: false
        serviceUrl:
          defaultZone: http://eurekaServer2:8762/eureka/

    Eureka2配置:

    # 服务端口
    server:
      port: 8762
    eureka:
      instance:
    # 注册中心地址
        hostname: eurekaServer2
      client:
    # 是否从注册中心获取注册表信息
        fetchRegistry: false
    # 是否向注册中心注册自己
        register-with-eureka: false
        serviceUrl:
          defaultZone: http://eurekaServer1:8761/eureka/

    eurekaServer1和eurekaServer2需要在hosts文件里配置:

    127.0.0.1    eurekaServer1
    127.0.0.1    eurekaServer2

    Users配置:

    # 应用名
    spring:
      application:
        name: Users
    # 引用指定文件
      profiles:
        active:
        - userserver1
    eureka: 
      client: 
        serviceUrl: 
          defaultZone: 
            http://eurekaServer1:8761/eureka/,
            http://eurekaServer2:8762/eureka/

    application-userserver1配置:

    # 服务端口
    server:
      port: 8763

    windows的hosts文件位置:C:\Windows\System32\drivers\etc

    要解决出现保护警告的提示有以下几种方法:

    1.  关闭Eureka自我保护机制eureka.server.enable-self-preservation=false(本地自己开发还可以,但是线上环境的话不推荐)

    2.  降低续约服务比例eureka.server.renewal-percent-threshold=0.49这个值是在网上大多数推荐的(这个也不推荐)

    3.  开启Eureka注册中心的 fetchRegistry(是否从注册中心获取注册表信息)和 register-with-eureka(是否向注册中心注册自己)把这两个设置为true(默认是true)。

    我试过第三种方法,百分百可以实现,出现自我保护的提醒概率特别小。除非是网络抖动或服务挂了。不过在服务恢复后,自我保护机制的提醒也会自动消失。如果有哪位伙伴没实现或没懂可以评论,我会尽快尽快回复。

    具体的设置成这样的原理回头再研究一遍补上哈( ̄□ ̄||)

    展开全文
  • (1)Eureka是什么?  Eureka是NetFlix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来说是非常重要的,有了...

    、Eureka服务注册与发现

    (1)Eureka是什么?

      Eureka是NetFlix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来说是非常重要的,有了服务发现与注册,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了。功能类似于dubbo的注册中心,比如Zookeeper

      Eureka采用C-S的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册中心。

      系统中的其他微服务,使用Eureka的客户端连接到Eureka Server并维持心跳连接。这样系统的维护人员就可以通过Eureka Server来监控系统中各个微服务是否正常运行。SpringCloud的一些其他模块(比如Zuul)就可以通过Eureka Server来发现系统中的其他微服务,并执行相关的逻辑。

    (2)Eureka的三大功能

    ①Eureka Server:提供服务注册和发现

    ②Service Provider:服务提供方将自身服务注册到Eureka,从而使服务消费方能够找到

    ③Service Consumer:服务消费方从Eureka获取注册服务列表,从而消费服务

    二、Eureka-Server构建

      本工程代码已上传至Githubhttps://github.com/Simple-Coder/microservice-demo-study

      使用工具:IDEA2018.2、Maven 3.6.1、JDK1.8

    (1)Maven工程结构

      

    (2)Eureka-pom文件

     <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-eureka-server</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-eureka</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
        </dependencies>
    Eureka-pom

    (3)Eureka-application.yml属性配置如下:

    server:
      port: 8001
    spring:
      application:
        name: microservice-eureka
    eureka:
      instance:
        hostname: localhost #eureka服务端实例名称
      client:
        register-with-eureka: false #false表示不向注册中心注册自己
        fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
        service-url:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务
      server:
        enable-self-preservation: false #禁用自我保护模式
    application.yml

    (4)Eureka启动类

    @SpringBootApplication
    @Slf4j
    @EnableEurekaServer
    public class Application {
        public static void main(String[] args) {
            try {
                SpringApplication.run(ApplicationBoot.class, args);
            } catch (Throwable t) {
                log.error("启动失败", t);
                throw t;
            }
        }
    }
    Application.java

    (5)浏览器访问:localhost:8001

     

      至此,Eureka-Server已经构建完成!

     三、Eureka客户端构建

    (1)Maven工程结构

    (2)miscroservice-provider-pom文件

      <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-eureka</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
        </dependencies>
    Provider-pom

    (3)micro-service-provider-application.yml文件

    server:
      port: 9001
    spring:
      application:
        name: microservice-provider-test
    eureka:
      client:
        service-url:
          defaultZone: http://localhost:8001/eureka/
      instance:
        instance-id: microservice-provider9001  #自定义服务名称信息
        prefer-ip-address: true #访问路径可以显示IP地址
    
    info:
      app.name: microservice-privder-9001
      company.name: www.baidu.com
      build.artifactId: $project.artifactId$
      build.version:  $project.version$
    Application.yml

    (4)测试Controller

    @RestController
    public class HelloWorldController {
        @Value("${server.port}")
        String port;
    
        @RequestMapping("/hello")
        public String home(String name)
        {
            return "hi " + name + ",i am from port:" + port;
        }
    }
    HelloWorldController

    (5)启动类

    @SpringBootApplication
    @Slf4j
    @EnableEurekaClient
    public class Application {
        public static void main(String[] args) {
            try {
                SpringApplication.run(ApplicationBoot.class, args);
            } catch (Throwable t) {
                log.error("启动失败", t);
                throw t;
            }
        }
    }
    Application.java

    (6)测试:先启动Eureka-Server,再启动Provider,浏览器访问:localhost:8001

    (7)测试controller:浏览器访问:localhost:9001/hello?name=zhangsan

     至此,Provider已经搭建完成!

    四、服务发现

    (1)Maven工程结构

      注入服务发现,并暴露地址访问,如下:

     (2)microservice-consumer测试

     (3)浏览器访问:http://localhost:7001/consumer/hello/discover

      服务发现测试成功!

    五、Eureka的集群模式(3个节点)

    (1)Maven的工程结构

     (2)application.yml文件配置(3个节点)

    microservice-eureka:application.yml(端口8001)

    server:
      port: 8001  #服务端口号
    eureka:
      client:
        service-url:
          #相互注册,组成一个集群,实现高可用
          defaultZone: http://eureka8002:8002/eureka/,http://eureka8003:8003/eureka/
      instance:
        #主机名
        hostname: eureka8001
    spring:
      application:
        #服务名称
        name: eureka-availability-server

    microservice-eureka8002:application.yml(端口8002)

    #集群模式Eureka
    server:
      port: 8002  #服务端口号
    eureka:
      client:
        service-url:
          #相互注册,组成一个集群,实现高可用
          defaultZone: http://eureka8001:8001/eureka/,http://eureka8003:8003/eureka/
      instance:
        #主机名
        hostname: eureka8002
    spring:
      application:
        #服务名称
        name: eureka-availability-server

    microservice-eureka8003:application.yml(端口8003)

    server:
      port: 8003  #服务端口号
    eureka:
      client:
        service-url:
          #相互注册,组成一个集群,实现高可用
          defaultZone: http://eureka8001:8001/eureka/,http://eureka8002:8002/eureka/
      instance:
        #主机名
        hostname: eureka8003
    spring:
      application:
        #服务名称
        name: eureka-availability-server

    (3)Eureka-Client的application.yml配置

    server:
      port: 9001
    spring:
      application:
        name: microservice-provider-test
    eureka:
      client:
        service-url:
          defaultZone: http://eureka8001:8001/eureka/,http://eureka8002:8002/eureka/,http://eureka8003:8003/eureka/
      instance:
        instance-id: microservice-provider9001  #自定义服务名称信息
        prefer-ip-address: true #访问路径可以显示IP地址
    
    info:
      app.name: microservice-privder-9001
      company.name: www.baidu.com
      build.artifactId: $project.artifactId$
      build.version:  $project.version$

    (4)配置本地hosts文件:C:\Windows\System32\drivers\etc

     (5)测试:依次启动eureka-server8001、eureka-server8002、eureka-server8003、provider

    浏览器访问:eureka8001:8001,出现以下红框内容说明测试成功!

     同样,分别访问eureka8002:8002、eureka8003:8003,如下图所示,说明Eureka的高可用集群搭建完成!

     

     

      至此,Eureka的高可用集群搭建完成(3个节点)搭建完成,是不是学习起来很简单呢?代码的世界真好玩!

    六、Actuator与注册微服务信息完善

    (1)添加pom依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    pom

    (2)主机名称:服务名称修改

    eureka.instance. instance-id: emp-provide #自定义服务名称信息

    (3)访问信息有IP信息提示

    eureka.client. instance.prefer-ip-address: true #访问路径可以显示IP地址

    (4)微服务info内容详细信息

     修改application.yml即可,访问浏览器:localhost:8001

    七、Eureka的自我保护机制

      默认情况下,如果EurekaServer在一定的时间内没有接收到某个微服务实例的心跳,EurekaServer将会注销该实例(默认90s),但是当网络分区故障发生时,微服务与EurekaServer之间无法正常通信,以上行为可能变得非常危险了-----因为微服务本身其实是健康的,此时本不应该注销这个微服务。Eureka通过“自我保护机制”来解决这个问题-----当EurekaServer节点在短时间内丢失过多客户端时(可能发生网络分区故障),那么这个节点就会进入自我保护模式。一旦进入该模式,EurekaServer就会保护服务注册表中的信息,不再删除服务注册表中的信息(也就是不会注销任何微服务)。当网络故障恢复后,该EurekaServer节点会自动退出自我保护模式。

      在自我保护模式中,Eureka Server会保护服务注册表中的信息,不再注销任何服务实例。当它收到的心跳数重新恢复到阈值以上时,该Eureka Server节点就会退出自我保护模式。它的设计哲学就是宁可保留错误的服务注册信息,也不盲目注销任何可能健康的服务实例。

      综上,自我保护模式是一种应对网络异常的安全保护措施。它的架构哲学是宁可同时保留所有微服务(健康的微服务和不健康的微服务都会保留),也不盲目注销任何可能健康的微服务实例。使用自我保护模式,可以让Eureka集群更加的健壮和稳定。

      一句话概括:某一时刻某一个微服务不可用了,eureka不会立刻清理,依旧会对该微服务的信息进行保存

      在Spring Cloud中,可以使用eureka.server.enable-self-preservation = false  禁用自我保护模式

    八、总结

      至此,以上是关于SpringCloud的HelloWorld入门学习。期间也遇到很多问题如下

    (1)如图,出现红色警告

     解决方案:编辑Eureka Server模块的application.yml添加如下配置:

     

      至此,Spring Cloud入门学习之HelloWorld已经搭建完成!

    转载于:https://www.cnblogs.com/rmxd/p/11537708.html

    展开全文
  • 为了保证服务的高可用,所以需要对Eureka进行一个集群搭建,用以保证Eureka的稳定,同时防止各种意外宕机事故的发生。 在没有使用集群之前Server端只有一个,Client端也只有一个,这时我们为了保证Eureka高可用...
  • 主要介绍了Springcloud eureka搭建高可用集群过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Eureka高可用集群搭建 1.为什么需要集群 如果只有一个注册中心服务器,会存在单点故障所以要集群部署。这样即使集群中某个节点出现宕机等故障,系统仍可以从其他节点拉取微服务地址,从而正常运行。 2.集群搭建 ...
  • 在微服务中,注册中心非常核心,可以实现服务治理,如果一旦注册出现故障的时候,可能会导致整个微服务无法访问,在这时候就需要对注册中心实现高可用集群模式。 Eureka高可用原理 默认情况下Eureka是让服务注册...
  • 服务注册中心Eureka高可用集群搭建 集群分析图 搭建步骤 1.在8083的配置文件中,让它的service-url指向8084,在8084的配置文件中service-url指向8083 2.由于8083和8084互相指向对方,实际上我们构建类一个双...
  • 本套教程 微服务架构基础(1) springcloud概述(2) 服务注册与发现(3) eureka交流机制(4) eureka高可用集群搭建(5) ribbon负载均衡(6) Feign入门配置(7) Feign进阶配置(8) hystrix熔断监控(9) zuul初级篇(10) zuul...
  • 1.application.yml配置如下:配置两个端口用于集群搭建测试 spring: application: name: EUREKA-HA --- server: port: 8261 spring: profiles: peer1 eureka: instance: hostname: peer1 client: serviceUrl...
  • Eureka 注册中心高可用集群概述在微服务架构的这种分布式系统中,我们要充分考虑各个微服务组件的可用性 问题,不能有单点故障,由于注册中心 eureka 本身也是一个服务,如果它只有一个节点,那么它有可能发生...
  • 什么是Eureka? 服务注册组件:将微服务注册到Eureka中。 为什么需要服务注册? 微服务开发重点在一个"微"字,大型应用拆分成微型服务,意味着服务的数量不可能少。 服务之间存在调用关系,假设没有服务注册,...
  • 一、Eureka是什么? 1、Eureka是基于REST(Representational State Transfer)服务。 2、以AWS云服务为支撑,提供服务发现并实现... 今天我们先来完成第一部分,服务的注册与发现,一步一步完成一个Eureka集群。 ...
  • Eureka 快速搭建集群高可用

    千次阅读 2018-05-30 09:41:19
    1、eclipse构建一个spring-boot项目,并引入spring-cloud-starter-eureka-server模块这是我的pom.xml 文件:&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;project xmlns="...
  • Eureka 作为一个云端负载均衡,本身是一个...Eureka Server 的负载将会很大,这样一旦Eureka Server服务挂掉了,整个微服务架构也就瘫掉了,所以在实际生产环境中不光要对注册在Eureka Server中的微服务进行集群管理
  • 手把手项目搭建 选择镜像 写mvn配置 选择Eureka Server 单节点搭建 在启动类加上@EnableEurekaServer注解 package com.bl.eureka; import org.springframework.boot.SpringApplication; import org....
  • 承接上一章,这一章主要学习eureka高可用!为什么要搭建集群集群究竟该怎么搭建?相信读者们都有很多疑问了,接下来就一一的说一下吧 第一、Eureka高可用的作用 之所以进行eureka集群搭建,在于我们平时的...
  • SpringCloud之Eureka高可用集群环境搭建 注册中心集群 在微服务中,注册中心非常核心,可以实现服务治理,如果一旦注册出现故障的时候,可能会导致整个微服务无法访问,在这时候就需要对注册中心实现高可用集群...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,699
精华内容 3,479
关键字:

eureka高可用集群搭建