SpringCloud Eureka服務(wù)的基本配置和操作方法
??簡述Eureka
Eureka是Netflix開源的一個(gè)基于REST的服務(wù)治理框架,主要用于實(shí)現(xiàn)微服務(wù)架構(gòu)中的服務(wù)注冊與發(fā)現(xiàn)。它由Eureka服務(wù)器和Eureka客戶端組成,其中Eureka服務(wù)器負(fù)責(zé)維護(hù)整個(gè)系統(tǒng)的服務(wù)實(shí)例信息,而Eureka客戶端則負(fù)責(zé)向Eureka服務(wù)器注冊自身信息,并從Eureka服務(wù)器獲取其他服務(wù)實(shí)例的信息。
通過Eureka,服務(wù)提供者可以在其啟動時(shí)向Eureka服務(wù)器注冊自己的網(wǎng)絡(luò)地址和元數(shù)據(jù)信息,而服務(wù)消費(fèi)者則可以從Eureka服務(wù)器查詢所需服務(wù)的實(shí)例列表,并基于負(fù)載均衡策略選擇合適的服務(wù)實(shí)例進(jìn)行調(diào)用。同時(shí),Eureka還具備監(jiān)控、故障轉(zhuǎn)移、自我保護(hù)等功能,能夠有效地應(yīng)對網(wǎng)絡(luò)分區(qū)等異常情況,確保整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。
總的來說,Eureka作為服務(wù)治理框架,為微服務(wù)架構(gòu)提供了一套完善的服務(wù)注冊與發(fā)現(xiàn)機(jī)制,幫助各個(gè)服務(wù)實(shí)例之間能夠自動地找到彼此,實(shí)現(xiàn)服務(wù)之間的通信與協(xié)作。它是構(gòu)建基于微服務(wù)架構(gòu)的分布式系統(tǒng)的重要工具之一,被廣泛應(yīng)用于云計(jì)算、大數(shù)據(jù)等領(lǐng)域。
??搭建Eureka服務(wù)
?操作步驟
首先我們在eureka-server包中進(jìn)行操作
首先我們先引入依賴
<dependencies> <!--eureka服務(wù)端--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies>
下面我們新建一個(gè)啟動類,來啟動eureka服務(wù)
package cn.itcast.eureka; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @EnableEurekaServer @SpringBootApplication public class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class, args); } }
下面我們編寫一個(gè)配置文件application.yml
server: port: 10086 # 服務(wù)端口 spring: application: name: eurekaserver # eureka的服務(wù)名稱 eureka: client: service-url: # eureka的地址信息 defaultZone: http://127.0.0.1:10086/eureka
這樣我們就成功搭建eureka服務(wù)了
?服務(wù)注冊
我們在user-service包中進(jìn)行操作
在pom文件中引入eureka客戶端依賴
<!--eureka客戶端依賴--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
我們編寫一個(gè)配置文件application.yml,配置eureka地址
server: port: 8081 spring: datasource: url: jdbc:mysql://mysql:3306/cloud_user?useSSL=false username: root password: 123 driver-class-name: com.mysql.jdbc.Driver application: name: userservice mybatis: type-aliases-package: cn.itcast.user.pojo configuration: map-underscore-to-camel-case: true logging: level: cn.itcast: debug pattern: dateformat: MM-dd HH:mm:ss:SSS eureka: client: service-url: # eureka的地址信息 defaultZone: http://127.0.0.1:10086/eureka
下面我們在order-service中進(jìn)行eureka服務(wù)注冊
我們打開order-service包
在pom文件中引入eureka客戶端依賴
<!--eureka客戶端依賴--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
我們編寫一個(gè)配置文件application.yml,配置eureka地址
server: port: 8081 spring: datasource: url: jdbc:mysql://mysql:3306/cloud_user?useSSL=false username: root password: 123 driver-class-name: com.mysql.jdbc.Driver application: name: userservice mybatis: type-aliases-package: cn.itcast.user.pojo configuration: map-underscore-to-camel-case: true logging: level: cn.itcast: debug pattern: dateformat: MM-dd HH:mm:ss:SSS eureka: client: service-url: # eureka的地址信息 defaultZone: http://127.0.0.1:10086/eureka
注意:order-service包和user-service包的yml文件的區(qū)別就是它們的name屬性
order-service是name: orderservice
user-service是name: userservice
?服務(wù)發(fā)現(xiàn)
Eureka是Netflix開源的服務(wù)發(fā)現(xiàn)框架,用于在分布式系統(tǒng)中實(shí)現(xiàn)服務(wù)的自動注冊與發(fā)現(xiàn)。它采用了客戶端-服務(wù)器的架構(gòu)模式,由一個(gè)或多個(gè)Eureka服務(wù)器和多個(gè)Eureka客戶端組成。
服務(wù)提供者在啟動時(shí)向Eureka服務(wù)器注冊自己的信息,包括服務(wù)名稱、網(wǎng)絡(luò)地址等。Eureka服務(wù)器維護(hù)一個(gè)服務(wù)注冊表,記錄了所有已注冊的服務(wù)信息。同時(shí),服務(wù)提供者還會周期性地發(fā)送心跳信號給Eureka服務(wù)器,以確保自己的存活狀態(tài)。
服務(wù)消費(fèi)者在需要調(diào)用某個(gè)服務(wù)時(shí),首先向Eureka服務(wù)器查詢該服務(wù)的信息。Eureka服務(wù)器返回可用的服務(wù)實(shí)例列表給消費(fèi)者,消費(fèi)者可以根據(jù)自己的負(fù)載均衡策略選擇其中一個(gè)實(shí)例進(jìn)行調(diào)用。同時(shí),消費(fèi)者也會緩存服務(wù)實(shí)例信息,以減少對Eureka服務(wù)器的頻繁查詢。
當(dāng)有服務(wù)提供者發(fā)生變動(例如啟動、關(guān)閉、網(wǎng)絡(luò)故障等)時(shí),Eureka客戶端會及時(shí)更新本地緩存的服務(wù)注冊表。消費(fèi)者通過定時(shí)任務(wù)或監(jiān)聽機(jī)制,可以感知到服務(wù)實(shí)例的變化,并及時(shí)做出相應(yīng)的調(diào)整。
總的來說,Eureka通過服務(wù)注冊與發(fā)現(xiàn)的機(jī)制,幫助分布式系統(tǒng)中的各個(gè)服務(wù)實(shí)例能夠自動地找到彼此,實(shí)現(xiàn)服務(wù)之間的通信與協(xié)作。它具有簡單、可靠、高可用等特點(diǎn),被廣泛應(yīng)用于微服務(wù)架構(gòu)中。
在技術(shù)的道路上,我們不斷探索、不斷前行,不斷面對挑戰(zhàn)、不斷突破自我。科技的發(fā)展改變著世界,而我們作為技術(shù)人員,也在這個(gè)過程中書寫著自己的篇章。讓我們攜手并進(jìn),共同努力,開創(chuàng)美好的未來!愿我們在科技的征途上不斷奮進(jìn),創(chuàng)造出更加美好、更加智能的明天!
到此這篇關(guān)于SpringCloud Eureka服務(wù)的基本配置和操作的文章就介紹到這了,更多相關(guān)SpringCloud Eureka服務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于SpringBoot項(xiàng)目遇到的坑--Date入?yún)栴}
這篇文章主要介紹了SpringBoot項(xiàng)目遇到的坑--Date入?yún)栴},具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10IDEA的Terminal無法執(zhí)行g(shù)it命令問題
這篇文章主要介紹了IDEA的Terminal無法執(zhí)行g(shù)it命令問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09詳解JAVA中ListIterator和Iterator的辨析
這篇文章主要為大家詳細(xì)介紹了JAVAListIterator和Iterator的辨析,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-02-02Hadoop?MapReduce實(shí)現(xiàn)單詞計(jì)數(shù)(Word?Count)
這篇文章主要為大家詳細(xì)介紹了如何利用Hadoop實(shí)現(xiàn)單詞計(jì)數(shù)(Word?Count)的MapReduce,文中的示例代碼講解詳細(xì),感興趣的可以跟隨小編一起學(xué)習(xí)一下2023-05-05Maven多模塊之父子關(guān)系的創(chuàng)建
這篇文章主要介紹了Maven多模塊之父子關(guān)系的創(chuàng)建,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03java 文件大數(shù)據(jù)Excel下載實(shí)例代碼
這篇文章主要介紹了java 文件大數(shù)據(jù)Excel下載實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-04-04