Spring Cloud微服務連載(二):搭建高可用Eureka服務註冊中心集羣

 

10萬+IT人都在關注,史上最全面的企業級微服務快速開發學習教程:5分鐘快速搭建一個高可用服務註冊中心集羣

前言:springcloud項目是基於springboot框架,我們演示的都創建springboot工程

上篇博客【Spring Cloud微服務連載(一):搭建服務註冊中心以及註冊服務提供者】中我們介紹瞭如何使用Spring Cloud搭建一個服務註冊中心以及註冊服務,但是搭建好的服務註冊中心是一個單節點的服務註冊中心,這樣一旦這個註冊中心發生了故障,那麼整個服務就會癱瘓,所以我們需要一個高可用的服務註冊中心,那麼在Eureka中,我們通過搭建註冊中心集羣來解決這個問題。Eureka Server的高可用實際上就是將自己作爲服務向其他服務註冊中心註冊自己,這樣就會形成一組互相註冊的服務註冊中心,進而實現服務清單的互相同步,達到高可用的效果。OK,廢話不多說,直接上乾貨,我們就來看看如何搭建高可用註冊中心。

增加配置文件

在上篇博客中,我們創建了一個名叫chenyun-cloud-eureka的服務註冊中心,在本文中,我將向這個工程中添加兩個配置文件application-peer1.yml和application-peer2.yml,進而將其分別啓動。如下:

兩個配置文件的內容分別如下:
application-peer1.yml:

spring:
  application:
    name: eureka-center
server:
  port: 1111
eureka:
  instance:
    hostname: peer1
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://peer2:1112/eureka/

application-peer2.yml:

spring:
  application:
    name: eureka-center
server:
  port: 1112
eureka:
  instance:
    hostname: peer2
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://peer1:1111/eureka/

關於這兩個配置文件作以下幾點說明:

1.在peer1的配置文件中,讓它的service-url指向peer2,在peer2的配置文件中讓它的service-url指向peer1
2.爲了讓peer1和peer2能夠被正確的訪問到,我們需要在C:\Windows\System32\drivers\etc目錄下的hosts文件總添加兩行配置,如下:
127.0.0.1 peer1
127.0.0.1 peer2
3.由於peer1和peer2互相指向對方,實際上我們構建了一個雙節點的服務註冊中心集羣

打包生成jar文件

OK,現在我們把這個註冊中心打包爲jar文件,eclipse裏打包方式如下:

生成結果在項目的target目錄下面,如下:

啓動項目

生成jar文件之後,我們在命令行通過java命令來啓動項目,在啓動的時候我們設置採用不同的配置文件來啓動項目,命令如下:

java -jar chenyun-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1  
java -jar chenyun-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

這兩行命令表示我們分別採用application-peer1.yml和application-peer2.yml兩個配置文件來啓動應用,執行完這兩個命令之後,我們的服務註冊中心就啓動了兩個了,效果圖如下:

我們可以看到,在peer1的節點的DS replicas我們已經看到peer2節點了,在peer2的DS replicas中我們也看到peer1節點了。

OK,現在我們的服務註冊中心集羣就搭建好了,然後我們可以做一個簡單的測試

修改上篇博客中提到的chenyun-cloud-hello-service項目的配置文件,如下:

spring:
  application:
    name: hello-service
server:
  port: 8881
eureka:
  instance:
    instance-id: ${spring.application.name}:${server.port}
    prefer-ip-address: true 
  client:
    service-url:
      defaultZone: http://peer1:1111/eureka/,http://peer2:1112/eureka/

我們在service-url中添加了兩個註冊中心地址,兩個地址中間用,隔開,OK,修改一下這裏就可以了,接下來我們來啓動這個項目,啓動成功之後我們再去刷新http://localhost:1111和http://localhost:1112 兩個頁面,我們會發現我的服務提供者在這兩個服務註冊中心都註冊了,如下:

 至此,一個高可用的服務註冊中心集羣我們就搭建成功了。

更多JavaEE資料請關注下面公衆號,歡迎廣大開發者朋友一起交流。筆者電話(微信):18629374628

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