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

6 篇文章 0 订阅
2 篇文章 0 订阅

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注册中心高可用集群发挥了作用
源代码下载

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值