Eureka
這篇文章先講述一下Eureka的應用場景、代碼實現(xiàn)案例,多個服務模塊注冊到Euraka中,服務之間的調(diào)用實現(xiàn)我會再下一篇文章中進行講解!
Eureka組件可以實現(xiàn)哪些功能
Eureka主要是做:
注冊發(fā)現(xiàn)中心
服務注冊與發(fā)現(xiàn)的組件
什么是CAP原則?
說到Eureka不得不提到了CAP,那么什么是CAP原則呢,下面一起來看下!CAP 原則:
又稱 CAP 定理,指的是在一個分布式系統(tǒng)中。
CAP原則三大特性:一致性 (Consistency):
在集群中,三個機器的數(shù)據(jù)是一致的。可用性I(Availability):
當有一個節(jié)點掛掉了整個集群可以繼續(xù)對外提供服務。分區(qū)容錯性 (Partition tolerance):
由于機房網(wǎng)絡或者分區(qū)等原因會導致各個機器中的數(shù)據(jù)短暫不一致。
(這個特性是不可避免的)CAP 原則指的是,這三個要素最多只能同時實現(xiàn)兩點,不可能三者兼顧。
說到這里再提一下Eureka
和Zookeeper
的區(qū)別?Zookeeper:
遵循CP原則Eureka:
AP原則:注重AP高可用
服務注冊代碼實戰(zhàn)
整體核心實現(xiàn)圖
搭建注冊中心
下面我來通過代碼的方式詳細的看下如何來快速實現(xiàn)Eureka的使用
只需要建我標記紅色框的項目,其它的不需要建,我這邊是之前做的服務注冊中心集群所以會有好幾個注冊中心
首先把目錄結(jié)構(gòu)給建起來,Maven項目注意:新增項目的時候選擇Java8
按照我圖上的這個建,新建項目流程這邊我不一一去說了,不明白的可以私信我!
第一步
先去新建注冊中心01-eureka-server
第二步
修改EurekaServerApplication
啟動類,添加@EnableEurekaServer
注解,意思是開啟Eureka的注冊中心的,啟動類里面只需要修改一個地方添加開啟Eureka注解
功能。
源碼如下:
package com.powernode;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer //開啟Eureka的注冊中心的功能
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
第三步
修改yml文件(配置文件)
源碼如下:
每一個配置代表什么意思我都一一添加了注釋,先按照我這種方式去改。
#單機
server:
port: 8761 # eureka的默認端口
spring:
application:
name: eureka-server # 應用名稱 不要使用特殊字符
eureka: #Eureka的配置分三類 server client 實例的 eureka-server既是服務端又是客戶端
server: #服務端每間隔多少毫秒定期刪除的操作(默認是30000(30秒))
eviction-interval-timer-in-ms: 10000
renewal-percent-threshold: 0.85 # 續(xù)約百分比 超過85的應用沒有和你續(xù)約 那么erueka不會踢除任何應用
instance: # 實例的配置
instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}} # 主機名稱 : 應用名稱 : 端口號
# hostname: localhost # 主機名稱 或者 服務的IP
# prefer-ip-address: true #以IP的形式顯示具體的服務信息
# lease-renewal-interval-in-seconds: 5 # 服務實例的續(xù)約的時間間隔
第四步
修改pom文件注意:
是01-eureka-server的pom文件
,因為這塊要去指定spring Cloud以及spring Boot版本。
按照我標紅色的框去修改
服務A搭建
服務A對應的項目名稱是:02-eureka-client-a
,千萬不要改錯地方哈!
第一步
先去修改yml配置文件。
源碼如下:
每一個配置代表什么意思我都一一添加了注釋,先按照我這種方式去改。
server:
port: 8702 # 客戶端端口沒有要求
spring:
application:
name: eureka-client-a
# 注冊 發(fā)送信息
eureka:
client:
service-url: # 指定注冊地址
defaultZone: http://localhost:8761/eureka
register-with-eureka: true # 可以不往eureka-server注冊
fetch-registry: true # 應用是否去拉取服務列表到本地
# 每個10秒中去注冊中心重新進行拉取 時間越短臟毒越少 性能消耗大
registry-fetch-interval-seconds: 10 # 為了緩解服務列表的臟毒問題
instance:
hostname: localhost # 應用的主機名稱 最好謝主機ip
instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}
prefer-ip-address: true # 顯示ip
lease-renewal-interval-in-seconds: 10 # 實例續(xù)約的時間
第二步
修改pom文件,按圖修改
服務B搭建
服務A對應的項目名稱是:02-eureka-client-b
,千萬不要改錯地方哈!
和服務A類似
第一步
先去修改yml配置文件。
源碼如下:
每一個配置代表什么意思我都一一添加了注釋,先按照我這種方式去改。
server:
port: 8703 # 客戶端端口沒有要求
spring:
application:
name: eureka-client-b
# 注冊 發(fā)送信息
eureka:
client:
service-url: # 指定注冊地址
defaultZone: http://localhost:8761/eureka
第二步
修改pom文件,按圖修改
啟動服務
啟動注冊中心
先啟動注冊中心01-eureka-server
,在啟動服用A和服務B
,
啟動方式:點擊啟動文件,然后點擊綠色的三角選擇運行模式或者調(diào)試模式都可以
看到下圖這個,說明就已經(jīng)啟動成功了,返回狀態(tài)碼為204。注意:重點來了非常重點
,在瀏覽器地址欄中直接輸入http://localhost:8761/
如果你輸入完http://localhost:8761/
給你返回的是這個頁面,恭喜你Eureka注冊中心啟動成功!
,接著再去啟動服務。
啟動服務A
還是這種方式去啟動,運行模式和調(diào)試模式都可以。
啟動成功后會顯示如下圖所示,狀態(tài)顯示204。注意:重點來了非常重點
,在瀏覽器地址欄中直接輸入http://localhost:8761/
,或者是剛才已經(jīng)打開這個地址了,直接F5刷新頁面。
可以清除的看到在注冊中心上方有一個應用名稱為:EUREKA-CLIENT-A
的服務注冊進來了,很好,繼續(xù)啟動服務B。
啟動服務B
服務B還是按照服務A的方式去啟動,我們可以清楚的看到目前有三個服務正在運行
,分別是注冊中心、服務A和服務B,回到瀏覽器,還是那個網(wǎng)址下,F(xiàn)5刷新。很好
,可以看到服務B也注冊進來了。
文章來源:http://www.zghlxwxcb.cn/news/detail-618212.html
結(jié)束語
至此就完成了一個注冊中心和兩個服務模塊的注冊功能的實現(xiàn),按照我的這種方式去搭建項目和代碼實現(xiàn),不明白的博主私信,大家可以看到我還有其他的組件
這是常用的Spring Cloud組件
,還有第二張圖的各個組件的服務,nacos文件配置中心搭建、手寫網(wǎng)關、熔斷器等等,都是源碼,有需要的博主可以私信我,不收取任何費用,如果你有不明白的地方我還會免費為你進行解答,希望能幫助到大家!
本期分享就到這里咯,下期分享rabbon實現(xiàn)遠程調(diào)用。文章來源地址http://www.zghlxwxcb.cn/news/detail-618212.html
到了這里,關于Spring Cloud Eureka 服務注冊和服務發(fā)現(xiàn)超詳細(附加--源碼實現(xiàn)案例--及實現(xiàn)邏輯圖)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!