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

跟這裏的值是對應的,然後選擇啓動即可測試。

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