微服務註冊與發現及如何使用Eureka
- 服務提供者,服務消費者,和服務發現主鍵之間的關係
①在各個服務啟動時候,就已經將自己的網路地址等資訊註冊到服務發現元件裡面了並且儲存這些資訊
② 服務消費者可以從發現元件中查詢服務提供者的網路地址,並且用該地址呼叫服務提供的介面
③各個微服務與發現元件使用一定機制通訊。服務發現元件入長時間無法與某個微服務通訊的話。就會直接登出例項
④微服務網路地址發生改變時,會重新註冊到發現服務元件中,服務消費者就無需人工修改的提供網路的網址了
2.下面看一下服務消費和服務提供者和服務消費者之間的關係
3.Eureka介紹和使用
3.1簡單的圖介紹Eureka的原理
上面圖可能畫醜了點
解釋一下上圖的意思吧
Application Service相當於服務提供者
Application Client 相當於服務消費者
Maker Rometo Call 相當於Restful API
看上面架構圖可以看出Eureka包含兩個元件,分別是:Eureka Client和Eureka Server。
Eureka Server 作用是可以提供發現服務的能力,各個微服啟動,都會註冊自己的資訊並且儲存
Eureka Client 是java的客戶端,微服務啟動後會發出心跳給延續自己的使用時間會週日期應該是預設為30秒,如果在一定時間沒沒有接受到微服的例項心跳,Eureka Server將會登出例項(預設時間是90秒)。假如是多個例項的話,它們之間會互相複製。來實現資料的同步。Eureka Client會快取服務的登錄檔中的資訊,從而降低了Eureka Server服務的壓力
4.寫一個Eureka Server
在application.properties配置如下
server.port=8082
#表示是否自己註冊到Eureka server 預設為true
eureka.client.register-with-eureka=false
#表示是否從Eureka Server獲取資訊
eureka.client.fetch-registry=false
#設定與Eureka Server互動地址。查詢服務和祖冊服務都需要依賴這個地址。預設是http://localhost:8761/eureka/
eureka.client.service-url.default-zone=http://localhost:8761/eureka/
啟動類程式碼如下新增@Eureka註解就可以訪問你的微服務
package com.zjm.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class MiroserviceDiscoveryEurekaApplication {
public static void main(String[] args) {
SpringApplication.run(MiroserviceDiscoveryEurekaApplication.class, args);
}
}
訪問http://localhost:8761/ 顯示如下
現在DSReplicas沒有微服註冊進來。
下面對提供者和服務消費者進行註冊
訪問http://localhost:8761/
這個有錯誤,是因為兩個服務埠一直導致的,要改一下執行Tomcat的埠就行了,兩個服務都註冊進來的。
application,.properties 配置如下連個服務都是一致的只要改動server.port就可以了
#把應用名稱註冊的到Eureka Server上
spring.application.name=miroservice-consumer-movie
#這個8761 是預設的 可以看原始碼
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
#表示IP註冊到Eureka Server
eureka.instance.ip-address=true
server.port=8081
MiroserviceConsumerMovieApplication.java,另個一個服務同理配置,這裡面的@EnableDiscoveryClient可以用@EnableEurekaClient
代替。@EnableDiscoveryClient為各個元件提供服務支援的。這裡只用到了單點服務
package com.zjm.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class MiroserviceConsumerMovieApplication {
public static void main(String[] args) {
SpringApplication.run(MiroserviceConsumerMovieApplication.class, args);
}
}
相關文章
- 【微服務之Eureka服務註冊發現】微服務
- SpringCloud-微服務的註冊與發現EurekaSpringGCCloud微服務
- 微服務~Eureka實現的服務註冊與發現及服務之間的呼叫微服務
- 服務註冊與發現【Eureka】- Eureka簡介
- Eureka實現服務註冊與發現
- 微服務4:服務註冊與發現微服務
- SpringColud Eureka的服務註冊與發現SpringGC
- SpringCloud(3)---Eureka服務註冊與發現SpringGCCloud
- SpringCloud服務的註冊與發現(Eureka)SpringGCCloud
- Spring Cloud Eureka 實現服務註冊與發現SpringCloud
- 聊聊微服務的服務註冊與發現!微服務
- 微服務學習小結-Eureka如何實現註冊中心,以及服務之間的註冊、呼叫微服務
- go-kit微服務:服務註冊與發現Go微服務
- 微服務SpringCloud之服務註冊與發現微服務SpringGCCloud
- Spring Cloud 系列(一)Eureka 服務註冊與發現SpringCloud
- Spring Cloud(一) 服務的註冊與發現(Eureka)SpringCloud
- (十四)spring cloud微服務分散式雲架構-服務註冊與發現(Eureka、Consul)SpringCloud微服務分散式架構
- SpringCloud——Eureka-微服務的註冊中心SpringGCCloud微服務
- 微服務Consul系列之服務註冊與發現微服務
- Choerodon 的微服務之路(三):服務註冊與發現微服務
- 微服務5:服務註冊與發現(實踐篇)微服務
- Spring Cloud 入門教程 – Eureka服務註冊與發現SpringCloud
- 每天學點SpringCloud(二):服務註冊與發現EurekaSpringGCCloud
- Spring Cloud 入門教程 - Eureka服務註冊與發現SpringCloud
- 企業分散式微服務雲SpringCloud SpringBoot mybatis -服務的註冊與發現(Eureka)分散式微服務GCCloudSpring BootMyBatis
- 微服務實戰系列(五)-註冊中心Eureka與nacos區別微服務
- 微服務註冊中心 Nacos 比 Eureka的優勢微服務
- 微服務架構 | 3. 註冊中心與服務發現微服務架構
- Spring Cloud微服務架構—服務註冊與發現SpringCloud微服務架構
- 小白入門微服務(4) – 服務註冊與服務發現微服務
- 小白入門微服務(4) - 服務註冊與服務發現微服務
- SpringCloud學習之路(二)- 服務的註冊與發現EurekaSpringGCCloud
- Spring Cloud實戰系列(一) - 服務註冊與發現EurekaSpringCloud
- SpringCloud學習筆記:服務註冊與發現Eureka(2)SpringGCCloud筆記
- 微服務之Eureka服務發現微服務
- 微服務架構 | 3.1 Netflix Eureka 註冊中心微服務架構
- 微服務之服務註冊和服務發現篇微服務
- 微服務之Eureka(二)服務中心互相註冊-Ribbon的結合使用微服務