EurekaServer高可用

前言

以前一篇文章文章《服務註冊與發現---eureka》介紹了單點EurekaServer。可是實際環境中,這種單點的的模式可能會有不少隱形的問題。好比EurekaServer發生宕機,或者某些意外狀況發生,極可能影響其餘服務之間的調用,嚴重影響到整個系統的可用性,因此,通常會部署一個高可用的EurekaServer集羣。git

本文簡單介紹EurekaServer高可用簡單搭建。spring

配置本地環境

因爲本地環境是單臺電腦來配置高可用,因此須要修改一下電腦的host文件,本文簡單說一下mac修改host文件,其餘系統電腦能夠自行百度一下,都很簡單。bash

1.進入/private/etc文件夾內

2.打開host文件

3.文件內加入如下兩行

127.0.0.1	server1
127.0.0.1	server2
複製代碼

本機完整host文件以下:app

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1	localhost
255.255.255.255	broadcasthost
::1             localhost
127.0.0.1	server1
127.0.0.1	server2

複製代碼

新建項目

配置好了host文件以後,新建一個項目,與以前新建eurekaserver徹底一致,不過配置文件進行了一下簡單的修改(只有配置文件進行了修改),先看一下單機模式下的配置:oop

server.port=8761

eureka.instance.hostname=localhost
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

##禁止本身向本身註冊
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
複製代碼

從配置上能夠看到,上面最後兩行配置是讓註冊中心不註冊本身,而其實eurekaserver就是將本身也當成服務,向其餘註冊中心註冊本身。測試

新建項目springcloud_eureka_server1(8761),除了配置其他沒有任何不一樣,這裏就不一一展現了,配置文件代碼以下:fetch

server.port=8761

eureka.instance.hostname=server1
eureka.client.service-url.defaultZone=http://server2:8762/eureka/

spring.application.name=server1
複製代碼

新建項目springcloud_eureka_server2(8762),配置文件代碼以下:網站

server.port=8762

eureka.instance.hostname=server2
eureka.client.service-url.defaultZone=http://server1:8761/eureka/

spring.application.name=server2
複製代碼

以上代碼不難理解,springcloud_eureka_server1(8761)將本身註冊到server2的eureka上,springcloud_eureka_server2(8762)註冊到server1的eureka上。this

這時查看一下eureka管理頁面,以下圖:url

觀察頁面能夠看到server1含有了server2的節點,server2有了server1的節點。

應用註冊到高可用EurekaServer上

修改以前項目springcloud_eureka_client(8761)配置文件以下:

##端口號
server.port=8763

spring.application.name=eureka_client

eureka.client.service-url.defaultZone=http://server1:8761/eureka/,http://server2:8762/eureka/
複製代碼

查看一下eureka管理頁面,以下:

此時就算斷開server1,由於springcloud_eureka_client(8763)也像server2註冊了,所以其餘server2上的服務依然能夠訪問springcloud_eureka_client(8763),從而實現了EurekaServer的高可用。

其餘測試

咱們在作一下修改,springcloud_eureka_client(8763)項目配置文件中只配置一個eurekaserver,代碼以下:

##端口號
server.port=8763

spring.application.name=eureka_client

eureka.client.service-url.defaultZone=http://server1:8761/eureka/
複製代碼

eureka管理頁面也是一樣的展現了和配置兩個服務同樣的效果,由於多個eureka之間的數據會同步,可是建議在客戶端像第一種方式那樣配置。

源碼下載 :大老楊碼雲

我的網站:www.dalaoyang.cn

關注做者公衆號

dalaoyang_gongzhonghao.jpg
相關文章
相關標籤/搜索