服務註冊、發現是微服務架構的關鍵原理之一,由於微服務架構是由一系列職責單一的細粒度服務構成的網狀結構,服務之間通過輕量機制進行通訊,這就必然引入乙個服務註冊發現的問題,也就是說服務提供方要註冊報告服務位址,服務呼叫方要能發現目標服務。在我們的微服務架構中我們採用了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表示自己端就是註冊中心,我的職責就是維護服務例項,...