Eureka集群搭建

2022-07-21 03:18:11 字數 2443 閱讀 4431

服務註冊、發現是微服務架構的關鍵原理之一,由於微服務架構是由一系列職責單一的細粒度服務構成的網狀結構,服務之間通過輕量機制進行通訊,這就必然引入乙個服務註冊發現的問題,也就是說服務提供方要註冊報告服務位址,服務呼叫方要能發現目標服務。在我們的微服務架構中我們採用了eureka來完成微服務的註冊與發現。微服務通過eureka進行註冊,服務呼叫方通過eureka找到目標服務。由於服務提供方以集群方式提供服務,eureka也採用集群的方式來提供服務的註冊與發現,集群中的eureka例項之間可以進行資料同步,所有eureka例項中的服務註冊資訊都是同步的。那麼問題來了,eureka集群中的例項怎麼知道其他例項的存在呢,怎麼來發現其他的例項呢?通常的做法是通過dns,因此我們需要搭建dns伺服器。下面來介紹euraka集群的搭建過程。

一、搭建dns伺服器(linux環境下)

1、安裝dns伺服器元件,這裡我們用的是bind

命令:yum install -y bind bind-chroot bind-utils

2、編輯配置dns主配置檔案

命令:vi  /etc/named.conf

3、修改named.rfc1912.zones檔案

命令: vi  /etc/named.rfc1912.zones

新增所需要的zone

4、新增設定dns正向解析

修改zone配置檔案,正向解析

命令:cd  /var/named/

cp named.localhost eureka.com.zone 

vi eureka.com.zone

注意:要和主配置檔案[/etc/named.rfc1912.zones]裡面定義的zone檔名一致

5、啟動dns伺服器

命令:service named start

6、測試檢測域資訊是否正常

檢查之前先看下配置檔案有沒有讀取許可權

命令:ll /var/named

如果沒有讀取許可權,用chmod +r /var/named/* 命令新增即可

7、重新啟動dns伺服器

命令:service named restart

8、dns伺服器位址配置

命令:vi  /etc/resolv.conf

命令:vi   /etc/sysconfig/network-scripts/ifcfg-enp0s25

二、將eureka的dns配置放在jar包外面啟動微服務

docker 命令:docker run –e eurekaserverdnsname=網域名稱 映象

三、eureka集群配置

其中 eureka 的配置分為client 端和server 端:

eureka client配置中,eurekaserverurlcontext: eureka 表示eureka註冊中心的路徑,預設為在eureka的配置檔案中加入此配置表

示eureka作為客戶端向註冊中心註冊,從而構成eureka集群。

eureka server 配置中,enableselfpreservation: false表示在此eureka伺服器中關閉自我保護模式,所謂自我保護模式是指,出現網路分割槽、eureka在短時間內丟失過

多客戶端時,會進入自我保護模式,即乙個服務長時間沒有傳送心跳,eureka也不會將其刪除。預設為true:

自我保護模式預設為開啟,這就涉及到閾值因子,預設為0.85,這些在eureka主介面上可以看出:

閾值不能大於最小值,否則將會進入自我保護模式。

以上是eureka集群的搭建過程,在搭建的過程中踩過很多坑,也有很多收穫,eureka相關的一些配置項就不在這裡贅述了,內容比較多,有必要的話我再另外單獨介紹這部分內容。

Eureka集群搭建

eureka7001,eureka7002 org.springframework.cloud spring cloud starter netflix eureka server server port 7001 eureka instance hostname eureka7001.com eu...

如何搭建eureka集群

eureka 集群的原理,就是 相互註冊,互相守望 我們假設要執行兩個eurekaserver的集群,埠分別為 7001和7002 1 模擬多個 eureka server 在不同機器上 進入c windows system32 drivers etc hosts 新增如下 127.0.0.1 eu...

eureka集群快速搭建

eureka server server port 8761 eureka instance hostname eureka server client false表示不向註冊中心註冊自己。registerwitheureka false false表示自己端就是註冊中心,我的職責就是維護服務例項,...