當前位置:首頁 » 雲伺服器 » eureka伺服器搭建

eureka伺服器搭建

發布時間: 2023-08-13 14:10:06

1. 【微服務】- SpringBoot Admin

目錄:

Spring Boot Admin 用於管理和監控一個或者多個Spring Boot應用, Spring Boot Admin 分為Server端和Client端,Client通過http向Server端注冊, 也可以結合Spring Cloud 的服務注冊組件Eureka 進行注冊。

SpringAdmin 的監測詳細信息有如下:

本文的所有工程的Spring Boot版本為2.2.2.RELEASE,SpringBootAdmin版本為2.2.1。

這樣Admin Server就創建好了。

到此,SpringBoot-Admin-Client 工程創建完成。

啟動Admin-Server,Admin-Client兩個工程,在瀏覽器上輸入localhost:8769 ,瀏覽器顯示的界面如下:

查看wallboard:

更多監控信息,自己體驗。

eureka-server搭建完畢。

到此admin-server 搭建完成。

到此,Eureka-Server,Admin-Server-Eureka-Client,Admin-Client-Eureka-Cleint 三個工程搭建完成

啟動三個工程,在瀏覽器上訪問localhost:8769,瀏覽器會顯示和上一小節一樣的界面。

在2.1.0版本中去掉了hystrix dashboard,登錄界面默認集成到了spring security模塊,只要加上spring security就集成了登錄模塊。

重啟啟動工程,在瀏覽器上訪問: http://localhost:8769/ ,會被重定向到登錄界面,登錄的用戶名和密碼為配置文件中配置的,分別為admin和admin,界面顯示如下:

源碼: https://github.com/lbshold/springboot/tree/master/Spring-Boot-Admin-Demo

2. 基於DNS搭建高可用Eureka注冊中心

按Alt + 回車鍵,將會生成eureka-server.zip,解壓縮後得到一個maven 項目,將該項目錄入IDE。

我們首先來看一下pom文件,可以看出項目中引用了spring-cloud-starter-netflix-eureka-server, 並且springboot 的版本號為:2.1.2.RELEASE, Spring Cloud的版本號為:Greenwich.RC2RC2 表示還沒有正式發布,只是第二個Release Candidate。
接下來我們只需要兩個步驟,
a、修改EurekaServerApplication, 在@SpringBootApplication的註解上面,加入一個新的註解:@EnableEurekaServer
b、在resources 目錄中加入application.yml 文件, 並配置以下信息:

一個簡單的Eureka 注冊中心就已經可以使用了,我們運行一下這個spring boot 應用,找開瀏覽器:localhost:8761,即可看到我們的注冊中心就已經運行啟來了。並且EUREKA-SERVER也注冊到自己的注冊中心了。

單節點的注冊中心已經搭建完畢,但單節點的注冊中心存在單點故障的可能,不能用於生產環境。生產環境的Eureka一般採用集群方式進行部署。

通過client.serviceUrl.defaultZone配置多個peer節點,因為是在單機上測試,所以修改了host文件,並且使用不同的埠號來啟動注冊中心。正式的生產環境請根據自己的實際情況進行配置,比如:第一台Eureka的IP地址為:192.168.0.100,則defaultZone配置其他三台注冊中心http://192.168.0.101:8761/eureka/,http://192.168.0.102:8761/eureka/,http://192.168.0.103:8761/eureka/
依次啟動4台注冊中心,打開網頁:http://localhost:8764

可以看到其它三台注冊中心已經出現在已注冊的replicas和可用的replicas列表裡邊。

如上圖所示,4台注冊中心,每台注冊中心需要配置其他三台伺服器,以Eureka 1為例,其配置如下:

注冊中心是本應該是無狀態的,可以橫向擴展。但由於每台注冊中心的配置都不一樣,所以擴展起來比較麻煩,需要修改配置文件,這樣就無法做到快速的擴容。

微服務客戶端需要配置注冊中心的地址,使用的是如下的配置:

由於配置的是固定的IP地址,如果我們要擴容注冊中心,增加新的注冊中心節點,那我們就需要修改微服務客戶端的配置文件,將新的注冊中心節點進入的伺服器列表中。試想一下,如果有幾十個微服務,每個微服務有4個節點,那將會要修改上百個配置文件。很顯然這種方式不太可取,從軟體設計角度來說,違反了開閉原則。

其實Eureka 注冊中心還有另一種高可用配置方式,基於DNS。Eureka天生就可以部署在像AWS這樣的公有雲上,並且可以跨Region,跨Available Zone部署。雖然我們不用部署在雲端,依然可以利用這一特性,我們可以把Region看作我們數據中心的機房,Avaiable Zone 看作是機房中的網路區域,結合內部DNS服務來實現高可用的注冊中心。

畫重點:
a. region: default,配置地區
b. useDnsForFetchingServiceUrls,表示基於DNS獲取服務信息
c. eurekaServerDNSName: eureka.txzq.com.cn,配置域名伺服器名稱

鍵:txt.default.eureka.txzq.com.cn 值:shenzhen.eureka.txzq.com.cn
鍵:txt.shenzhen.eureka.txzq.com.cn 值:172.18.10.1 172.18.10.2 172.18.10.3 172.18.10.4

第一條記錄表示,default 區域,包含了哪些可用區,我們用shenzhen表示是深圳機房,txt記錄的值就設置為:shenzhen.eureka.txzq.com.cn
第二第記錄表示 , shenzhen機房有哪些伺服器,多台伺服器使用空格格開。
如果在本地測試,需要搭建一台自己的DNS伺服器,可以參考我的另一篇文章: 基於Docker快速搭建DNS Server

Client View是指DNS服務應用到哪一個網段,比如:172.18.10.0/24網段的IP連接到BIND伺服器,才會解析指定的域名。

在添加域名的時候,需要指定Client View,這里我們選擇我們剛剛創建的View_172.18.10.0,指的是只有在這個網段的IP訪問這台DNS伺服器,才能解析。

添加完一級域名後我們刷一下這個ZONE,然後設置一下本地DNS伺服器

DNS域名伺服器驗證通過後,我們接下來就可以在為這個域名添加我們所需要的txt 記錄了。

到這里我們的准備工作就已經基本完成了。使用Maven將注冊中心編譯成,輸出jar包。新建一個Eureka的docker鏡像,並啟動4個容器。基於DNS的注冊中心就搭建完畢了。

你只需要對DNS記錄進行變更,就可以實現動態的、快速擴容/縮容了。

關於如何將Eureka部署到Docker,請參考另一篇文章:

3. SpringCloud 集成 Eureka服務 部署阿里雲伺服器

將SpringCloud集成Eureka服務部署在阿里雲伺服器。
項目在上一篇博客講過在本地測試SpringCloud集成Eureka服務,博客地址:
https://www.jianshu.com/p/78e8797ea804 ,現在將3個項目部署在阿里雲伺服器,環境是CentOS7,Tomcat 9。

在pom.xml文件里設置打包方式:

在啟動Application類添加:

在application.properties配置文件修改:

直接把項目lean下,再package:

打包後的war包在target目錄下:

修改pom.xml依賴:

程序入口application類修改:

消費者的api請求路徑修改:

application.properties修改

直接對項目lean,再package:

3.Eureka Client項目demo打包跟1類似,這就不重復寫了;
3個項目打包好的包名:springcloud-eureka.war,springcloud-eureka-client-one.war,springcloud-eureka-client-one.war:

4.將3個war部署阿里雲伺服器
登錄阿里雲的白塔控制面板,將3個包上傳到Tomcat的webapps文件夾下:

或者通過xftp工具上傳也可以;

上傳完後,重啟Tomcat,等一會,就可以在瀏覽器里訪問:

相關鏈接:

成功截圖:

熱點內容
php測試員 發布:2025-02-05 10:54:58 瀏覽:514
linux反編譯jar 發布:2025-02-05 10:46:29 瀏覽:25
演算法激勵 發布:2025-02-05 10:45:48 瀏覽:304
java16進制字元串 發布:2025-02-05 10:38:13 瀏覽:643
創業團隊配置有哪些 發布:2025-02-05 10:37:40 瀏覽:630
王者鍵盤怎麼設置安卓 發布:2025-02-05 10:32:01 瀏覽:373
阿里雲輕量伺服器ip搭建 發布:2025-02-05 10:24:46 瀏覽:487
編程高精度 發布:2025-02-05 10:22:28 瀏覽:230
使命召喚如何配置爆炸狙 發布:2025-02-05 10:08:12 瀏覽:143
java訪問共享目錄 發布:2025-02-05 10:03:56 瀏覽:282