Eureka实现高可用

Eureka作为注册中心,相信现在知道springcloud的小伙伴,自己都私下玩过这东东,但主要还是玩的单机版的。

今天自己玩了下集群版,感觉坑真的很多,不仅仅是配置问题,更甚者有的问题百度的答案五花八门,当然,我这里也会变成这五花八门中的一门,哈哈哈。。。。。。

先说思路:

假设现在启动三台服务器(这里由于是本地,都用127.0.0.1 有服务器的小伙伴当然可以直接换成不同的ip,这没影响),每一台跑一个Eureka项目。

例如:A、B、C三个程序,要实现集群,那么就要互相注册,A想B和C注册,同理B向A和C注册,C向A和B注册,这里如要一个JAR包完全够用:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

这里的配置,最主要的还是配置文件,

spring:
  application:
    name: eureka-server
---
server:
  port: 7001
spring:
  #隔离,配置这东西用来选择启动的那个配置,当然不配置用Dserver.port也是可以的
  profiles: test
eureka:
  server:
    eviction-interval-timer-in-ms: 5000
  instance:
    hostname: eureka01
    #prefer-ip-address: false
  client:
    #当做服务注册自己
    register-with-eureka: true
    #拉取注册信息
    fetch-registry: true
    service-url:
      defaultZone: http://eureka01:7001/eureka/,http://eureka02:7003/eureka/,http://eureka03:7004/eureka/
---
server:
  port: 7003
spring:
  profiles: dev
eureka:
  server:
    eviction-interval-timer-in-ms: 5000
  instance:
    hostname: eureka02
    #prefer-ip-address: false
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://eureka01:7001/eureka/,http://eureka02:7003/eureka/,http://eureka03:7004/eureka/
---
server:
  port: 7004
spring:
  profiles: prod
eureka:
  server:
    eviction-interval-timer-in-ms: 5000
  instance:
    hostname: eureka03
    #prefer-ip-address: false
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://eureka01:7001/eureka/,http://eureka02:7003/eureka/,http://eureka03:7004/eureka/
---

详细解释一下:

1.

spring:
  application:
    name: eureka-server

设置服务名的,这里集群就用一个名字就行,这里叫eureka-server。

就是这里的名字,如果配置了多个,那么现实的就是多条。

2.

eureka:
  server:
    eviction-interval-timer-in-ms: 5000
  instance:
    hostname: eureka01
    #prefer-ip-address: false

这里的hostname,优先级低于application.name,但是这里的它还不能省略,注册的时候需要用到hostname;

3.

  client:
    #当做服务注册自己
    register-with-eureka: true
    #拉取注册信息
    fetch-registry: true

这里要注意,单机的时候,这里都是false,集群要开启,要不然就没法互相注册拉取注册信息了。

4.配置映射:

C:\Windows\System32\drivers\etc

路径下找到host文件,添加:

127.0.0.1 eureka01
127.0.0.1 eureka02
127.0.0.1 eureka03

这样就完成整个注册过程了,注意这里的名字要跟hostname的名字一致。

这样就注册成功了。集群注册中心完成。

补:这里与搭建无关,只是讲解下一个文件中配置三个端口,需要使用“---”进行隔开,启动时,以idea为例:

点开之后如下图:

点击复制,然后修改Active Profiles,这里的值就是配置文件中

spring:
  #隔离,配置这东西用来选择启动的那个配置,当然不配置用Dserver.port也是可以的
  profiles: test

跟这里的值是对应的,然后选择启动即可测试。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章