- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- SpringCloud實(shí)現Eureka服務(wù)注冊與發(fā)現
GitHub地址:
(1) Eureka是一個(gè)基于REST的服務(wù),用于定位服務(wù),以實(shí)現云端中間層服務(wù)發(fā)現和故障轉移。
(2) Eureka 主管服務(wù)注冊與發(fā)現,在微服務(wù)中,以后了這兩者,只需要使用服務(wù)的標識符(==就是那個(gè)在每個(gè)服務(wù)的yml文件中取得服務(wù)名稱(chēng)==),
就可以訪(fǎng)問(wèn)到服務(wù),不需要修改服務(wù)調用的配置文件。
(3) Eureka遵循AP原則(高可用,分區容錯性),因為使用了自我保護機制所以保證了高可用。
兩大組件:Eureka Server(提供注冊服務(wù))、 Eureka Client(JAVA客戶(hù)端,負責發(fā)送心跳)
系統中的其他微服務(wù)使用Eureka客戶(hù)端連接到Eureka服務(wù)端維持心跳連接(即注冊)。SpringCloud的其他模塊可以通過(guò)Eureka Server 來(lái)發(fā)現系統中的微服務(wù)并加以調用
Eureka Server:提供服務(wù)注冊和發(fā)現
Service Provider:服務(wù)提供方,將自身服務(wù)注冊到Eureka,從而使服務(wù)消費方能夠找到
Service Consumer:服務(wù)消費方,從Eureka獲取注冊服務(wù)列表,從而能夠消費服務(wù)。
<!--注冊服務(wù)中心的jar要多個(gè)-server--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency>
server: port: 7001 eureka: instance: hostname: localhost client: #聲明自己是個(gè)服務(wù)端 registerWithEureka: false #false表示不向注冊中心注冊自己 fetchRegistry: false #false表示自己就是注冊中心,職責是維護實(shí)例,不參加檢索 serviceUrl: #設置eureka server的交互地址,即對外暴露的地址 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
//注意:要在類(lèi)前加@EnableEurekaServer標注 @SpringBootApplication @EnableEurekaServer public class Eureka7001_APP { public static void main(String[] args) { SpringApplication.run(Eureka7001_APP.class,args); } }
運行結果:輸入:http://localhost:7001/
假設這個(gè)商品微服務(wù)。
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
server: port: 8001 #指定注冊中心地址 eureka: client: serviceUrl: defaultZone: http://localhost:7001/eureka/ #服務(wù)的名稱(chēng) spring: application: name: product-service
@SpringBootApplication public class ProductApplication { public static void main(String[] args) { SpringApplication.run(ProductApplication.class, args); } }
發(fā)現在服務(wù)注冊中心已經(jīng)注冊了一個(gè)服務(wù)
這就是搭建了商品微服務(wù)集群。
其實(shí)服務(wù)方和消費在配置時(shí)候沒(méi)有任何區別,它們都屬于Eureka Client組件。只是涉及服務(wù)間的調用,所以就把被調方稱(chēng)為提供方,調用方稱(chēng)為消費方。就好比訂單微服務(wù),
訂單服務(wù)肯定需要去調商品微服務(wù),所以這個(gè)訂單微服務(wù)對于商品來(lái)講可以理解服務(wù)提供方。一個(gè)微服務(wù)即可以是服務(wù)方也同時(shí)是提供方。
<!--這個(gè)對于每個(gè)不是注冊中心的微服務(wù)都要添加--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
server: port: 9001 #指定注冊中心地址 eureka: client: serviceUrl: defaultZone: http://localhost:7001/eureka/ #服務(wù)的名稱(chēng) spring: application: name: order-service
@SpringBootApplication public class OrderApplication { public static void main(String[] args) { SpringApplication.run(OrderApplication.class, args); } }
發(fā)現訂單微服務(wù)也成功注冊到注冊中心
至于訂單微服務(wù)如何調商品微服務(wù)呢,下一遍博客在寫(xiě)咯。
以上就是SpringCloud實(shí)現Eureka服務(wù)注冊與發(fā)現的詳細內容,更多關(guān)于SpringCloud Eureka服務(wù)注冊與發(fā)現的資料請關(guān)注腳本之家其它相關(guān)文章!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站