一、SpringCloud 如何實作服務的注冊?
- 首先創建一個maven主工程,
- 創建2個model工程:一個model工程作為服務注冊中心,即Eureka Server,另一個作為Eureka Client,
- 啟動一個服務注冊中心,只需要一個注解@EnableEurekaServer,這個注解需要在springboot工程的啟動application類上加
- eureka是一個高可用的組件,它沒有后端快取,每一個實體注冊之后需要向注冊中心發送心跳(因此可以在記憶體中完成),在默認情況下erureka server也是一個eureka client ,必須要指定一個 server,
- eureka server 是有界面的,啟動工程,打開瀏覽器訪問
- 創建一個服務提供者 (eureka client)通過注解@EnableEurekaClient 表明自己是一個eurekaclient,要在組態檔中注明自己的服務注冊中心的地址需要指明spring.application.name在以后的服務與服務之間相互呼叫一般都是根據這個name
- 啟動工程,打開eureka server 的網址
二、Eureka是什么?
Eureka是Netflix開發的服務發現框架,本身是一個基于REST的服務,主要用于定位運行在AWS域中的中間層服務,以達到負載均衡和中間層服務故障轉移的目的,
Eureka包含兩個組件:Eureka Server和Eureka Client,
Eureka Server提供服務注冊服務,各個節點啟動后,會在Eureka Server中進行注冊,這樣EurekaServer中的服務注冊表中將會存盤所有可用服務節點的資訊,服務節點的資訊可以在界面中直觀的看到,
Eureka Client是一個java客戶端,用于簡化與Eureka Server的互動,客戶端同時也就是一個內置的、使用輪詢(round-robin)負載演算法的負載均衡器,
在應用啟動后,將會向Eureka Server發送心跳,默認周期為30秒,如果Eureka Server在多個心跳周期內沒有接收到某個節點的心跳,Eureka Server將會從服務注冊表中把這個服務節點移除(默認90秒),
Eureka Server之間通過復制的方式完成資料的同步,Eureka還提供了客戶端快取機制,即使所有的Eureka Server都掛掉,客戶端依然可以利用快取中的資訊消費其他服務的API,綜上,Eureka通過心跳檢查、客戶端快取等機制,確保了系統的高可用性、靈活性和可伸縮性,
三、注冊中心的頁面都有哪些資訊展示?
- 系統狀態
- eureka集群
- 注冊到eureka的服務
- JVM的資訊
- 當前服務的資訊
四、什么是 Spring Cloud ?
Spring提供了一系列工具,可以幫助開發人員迅速搭建分布式系統中的公共組件(比如:配置管理,服務發現,斷路器,智能路由,微代理,控制總線,一次性令牌,全域鎖,主節點選舉, 分布式session, 集群狀態),協調分布式環境中各個系統,為各類服務提供模板性配置,使用Spring Cloud, 開發人員可以搭建實作了這些樣板的應用,并且在任何分布式環境下都能作業得非常好,小到筆記本電腦, 大到資料中心和云平臺,
Spring Cloud官網的定義比較抽象,我們可以從簡單的東西開始,Spring Cloud是基于Spring Boot的, 最適合用于管理Spring Boot創建的各個微服務應用,要管理分布式環境下的各個Spring Boot微服務,必然存在服務的注冊問題,所以我們先從服務的注冊談起,既然是注冊,必然有個管理注冊中心的服務器,各個在Spring Cloud管理下的Spring Boot應用就是需要注冊的client
Spring Cloud使用erureka server, 然后所有需要訪問組態檔的應用都作為一個erureka client注冊上去,eureka是一個高可用的組件,它沒有后端快取,每一個實體注冊之后需要向注冊中心發送心跳,在默認情況下erureka server也是一個eureka client ,必須要指定一個 server,
五、Spring Cloud的核心組件有哪些?
- Eureka(nacos類似)
- Feign(OpenFeign類似)
- Ribbon
- Hystrix
- zull
六、SpringCloud和 Dubbo 的區別?
- dubbo由于是二進制的傳輸,占用帶寬會更少
- springCloud是http協議傳輸,帶寬會比較多,同時使用http協議一般會使用JSON報文,消耗會更大
- dubbo的開發難度較大,原因是dubbo的jar包依賴問題很多大型工程無法解決
- springcloud的介面協議約定比較自由且松散,需要有強有力的行政措施來限制介面無序升級
- dubbo的注冊中心可以選擇zk,redis等多種,springcloud的注冊中心用eureka或者自研(選擇較少)
七、SpringBoot和SpringCloud 的關系?
- Spring Cloud是一個基于Spring Boot實作的云應用開發工具;Spring Cloud是多個Spring boot微服務的集合
- Spring boot專注于快速、方便集成的單個個體,Spring Cloud是關注全域的服務治理框架;
- spring boot使用了默認大于配置的理念,很多集成方案已經幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring boot來實作,
- Spring boot可以離開Spring Cloud獨立使用開發專案,但是Spring Cloud離不開Spring boot,屬于依賴的關系,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/501996.html
標籤:其他
上一篇:總結一
下一篇:Java面試知識點總結
