spring cloud (一)服務治理
前言
spring cloud在官網的定義非常抽象,並沒有一個通俗的描述。其實簡單點說,spring cloud 是基於spring boot的,最適合用於管理spring boot建立的各個微服務應用。spring cloud使用的eureka server,然後所有需要訪問的應用都作為一個eureka client註冊上去。eureka是一個高可用元件,沒有後端快取,每一個例項註冊之後需要向註冊中心傳送心跳。一個eureka server也是一個eureka client。
這裡依舊只是實現hello world級別的程式,遇到的深入的問題,需要後面深入以後再做總結。
相關概念
服務註冊
在服務治理框架中,通常都會構建一個註冊中心,每個服務單元向註冊中心登記自己提供的服務,將主機埠號,版本號,通訊協議等一些附加資訊告知註冊中心。註冊中心按服務名分類組織服務清單。
另外服務中心還會以心跳的方式去監測清單中的服務是否可用,若不可用需要從服務清單中剔除,達到排除故障服務的效果。
服務發現
在服務治理框架下,服務間的呼叫不再是通過制定具體的例項地址來實現(原來的web service貌似就是這種方式),而是通過向服務名發起請求呼叫來是實現。所以,服務呼叫方在呼叫服務提供方介面的時候,並不知道具體的服務例項地址。因此呼叫方需要向服務註冊中心諮詢服務,並獲得所有服務的例項清單,以實現對具體服務的訪問。
spring cloud Eureka
使用Netflix Eureka來實現服務註冊與發現,它包含了服務端元件也包含了客戶端元件。通用性還可以(對不相容JVM的語言,需要自己編寫客戶端程式)。
Eureka服務端——可以理解為服務註冊中心
Eureka客戶端——想註冊中心註冊自己提供的服務並週期性的傳送心跳來更新他的服務租約。同時,也能從服務端查詢當前註冊的服務資訊並把他們快取到本地並週期性的重新整理服務狀態。
上述概念暫時簡單理解就行,下面進行相關例項的搭建
搭建服務註冊中心
1、進入start.spring.io構建spring boot
需要新增eureka
2、在配置檔案中加入如下屬性
server.port=8898
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
server.port是設定服務註冊中心的埠號
eureka.client.register-with-eureka=false:由於該應用為註冊中心,所以設定為false。表示不想註冊中心註冊自己
eureka.client.fetch-registry=false:註冊中心的職責就是維護服務例項,並不需要去檢索服務,因此也設定為false。
3、在主類中打上@EnableEurekaServer註解
@EnableEurekaServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
執行程式,訪問配置的服務地址,localhost:8898/,即可看到註冊中心的頁面。
搭建服務註冊者
這一步與之前的步驟無二,只是需要在主類中加上@EnableEurekaClient,註解即可
在配置檔案中將那個埠改成與註冊中心不同的埠,如下所示:
#指定服務註冊中心的地址
eureka.client.service-url.defaultZone:http://localhost:8898/eureka/
#指定服務的名稱
spring.application.name=service-helloworld
#消費端埠號
server.port=8897
訪問localhost:8897/
註冊中心可以看到服務已經註冊
總結
hello world級別的,還有什麼好總結的,low爆了,後面加入高可用的註冊中心......
相關文章
- spring-cloud 服務治理SpringCloud
- 服務治理: Spring Cloud EurekaSpringCloud
- 服務治理->搭建服務註冊中心: Spring Cloud EurSpringCloud
- Spring Cloud Consul:服務治理與配置中心SpringCloud
- Dubbo 3.0 前瞻:重塑 Spring Cloud 服務治理SpringCloud
- 使用 Flomesh 強化 Spring Cloud 服務治理SpringCloud
- 基於Spring Cloud微服務叢集的服務治理思考SpringCloud微服務
- spring cloud alibaba系列(一) 服務註冊SpringCloud
- spring cloud 服務搭建(1)SpringCloud
- Spring Cloud 實戰一:服務註冊中心SpringCloud
- spring cloud微服務分散式雲架構(一)-spring cloud 服務註冊與發現SpringCloud微服務分散式架構
- 微服務整合Spring Cloud Alibaba Seata(一)Seata服務搭建微服務SpringCloud
- Spring Cloud構建微服務架構-spring cloud服務監控中心SpringCloud微服務架構
- Spring Cloud Kubernetes服務發現SpringCloud
- 貝殼金控趙文樂:基於 Spring Cloud 的服務治理實踐SpringCloud
- Spring Cloud Feign 宣告式服務呼叫SpringCloud
- Spring Cloud服務發現元件EurekaSpringCloud元件
- Spring Cloud Alibaba(8)---Feign服務呼叫SpringCloud
- 宣告式服務呼叫 Spring Cloud FeignSpringCloud
- Spring Cloud 系列(一)Eureka 服務註冊與發現SpringCloud
- Spring Cloud雲架構 - commonservice-sso服務搭建(一)SpringCloud架構
- Spring Cloud實戰系列(七) - 服務鏈路追蹤Spring Cloud SleuthSpringCloud
- Java Spring Cloud 與響應式微服務(一)服務註冊中心JavaSpringCloud微服務
- 微服務 | Spring Cloud(一):從單體SSM 到 Spring Cloud微服務SpringCloudSSM
- Spring cloud(2)-服務發現(Eureka,Consul)SpringCloud
- Spring Cloud Hystrix 服務容錯保護SpringCloud
- Spring Cloud Hystrix:服務容錯保護SpringCloud
- spring cloud-之使用docker部署服務SpringCloudDocker
- Spring Cloud Eureka原理分析(一):註冊過程-服務端SpringCloud服務端
- Spring Cloud 從入門到精通(一)Nacos 服務中心初探SpringCloud
- spring cloud網際網路分散式微服務雲平臺規劃分析--spring cloud服務統一配置中心SpringCloud分散式微服務
- Spring Cloud雲服務架構 - commonservice-config配置服務搭建SpringCloud架構
- Spring Cloud實戰系列(九) - 服務認證授權Spring Cloud OAuth 2.0SpringCloudOAuth
- ketchup服務治理
- Spring Cloud(九)高可用的分散式配置中心 Spring Cloud Config 整合 Eureka 服務SpringCloud分散式
- (十五) 整合spring cloud雲架構 - commonservice-sso服務搭建(一)SpringCloud架構
- Spring Cloud實戰系列(一) - 服務註冊與發現EurekaSpringCloud
- Spring Cloud Alibaba | Sentinel: 服務限流基礎篇SpringCloud