
??簡述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ù)提供者可以在其啟動(dòng)時(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)對(duì)網(wǎng)絡(luò)分區(qū)等異常情況,確保整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。
總的來說,Eureka作為服務(wù)治理框架,為微服務(wù)架構(gòu)提供了一套完善的服務(wù)注冊與發(fā)現(xiàn)機(jī)制,幫助各個(gè)服務(wù)實(shí)例之間能夠自動(dòng)地找到彼此,實(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è)啟動(dòng)類,來啟動(dòng)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: orderservice
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ù)的自動(dòng)注冊與發(fā)現(xiàn)。它采用了客戶端-服務(wù)器的架構(gòu)模式,由一個(gè)或多個(gè)Eureka服務(wù)器和多個(gè)Eureka客戶端組成。
服務(wù)提供者在啟動(dòng)時(shí)向Eureka服務(wù)器注冊自己的信息,包括服務(wù)名稱、網(wǎng)絡(luò)地址等。Eureka服務(wù)器維護(hù)一個(gè)服務(wù)注冊表,記錄了所有已注冊的服務(wù)信息。同時(shí),服務(wù)提供者還會(huì)周期性地發(fā)送心跳信號(hào)給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)者也會(huì)緩存服務(wù)實(shí)例信息,以減少對(duì)Eureka服務(wù)器的頻繁查詢。
當(dāng)有服務(wù)提供者發(fā)生變動(dòng)(例如啟動(dòng)、關(guān)閉、網(wǎng)絡(luò)故障等)時(shí),Eureka客戶端會(huì)及時(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í)例能夠自動(dòng)地找到彼此,實(shí)現(xiàn)服務(wù)之間的通信與協(xié)作。它具有簡單、可靠、高可用等特點(diǎn),被廣泛應(yīng)用于微服務(wù)架構(gòu)中。
在技術(shù)的道路上,我們不斷探索、不斷前行,不斷面對(duì)挑戰(zhàn)、不斷突破自我。科技的發(fā)展改變著世界,而我們作為技術(shù)人員,也在這個(gè)過程中書寫著自己的篇章。讓我們攜手并進(jìn),共同努力,開創(chuàng)美好的未來!愿我們在科技的征途上不斷奮進(jìn),創(chuàng)造出更加美好、更加智能的明天!文章來源:http://www.zghlxwxcb.cn/news/detail-751795.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-751795.html
到了這里,關(guān)于【SpringCloud篇】Eureka服務(wù)的基本配置和操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!