SpringCloud 入門介紹

2022-05-28 22:42:13 字數 2259 閱讀 1805

業界大牛馬丁.福勒(martin fowler) 這樣描述微服務:

****:           

微服務:

強調的是服務的大小,它關注的是某乙個點,是具體解決某乙個問題/提供落地對應服務的乙個服務應用,

狹意的看,可以看作eclipse裡面的乙個個微服務工程/或者module

微服務化的核心就是將傳統的一站式應用,根據業務拆分成乙個乙個的服務,徹底地去耦合,

每乙個微服務提供單個業務功能的服務,乙個服務做一件事,

從技術角度看就是一種小而獨立的處理過程,類似程序概念,能夠自行單獨啟動或銷毀,擁有自己獨立的資料庫。

微服務條目落地技術備註服務開發springboot、spring、springmvc服務配置與管理netflix公司的archaius、阿里的diamond等

服務註冊與發現eureka、consul、zookeeper等

服務呼叫rest、rpc、grpc服務熔斷器hystrix、envoy等

負載均衡ribbon、nginx等

服務介面呼叫(客戶端呼叫服務的簡化工具)feign等訊息佇列kafka、rabbitmq、activemq等

服務配置中心管理springcloudconfig、chef等

服務路由(api閘道器)zuul等

服務監控zabbix、nagios、metrics、spectator等

服務部署docker、openstack、kubernetes等

資料流操作開發包springcloud stream(封裝與redis,rabbit、kafka等傳送接收訊息)事件訊息匯流排spring cloud bus......

springcloud,基於springboot提供了一套微服務解決方案,包括服務註冊與發現,配置中心,全鏈路監控,服務閘道器,負載均衡,熔斷器等元件,除了基於netflix的開源元件做高度抽象封裝之外,還有一些選型中立的開源元件。

springcloud利用springboot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,springcloud為開發人員提供了快速構建分布式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微**、事件匯流排、全域性鎖、決策競選、分布式會話等等,它們都可以用springboot的開發風格做到一鍵啟動和部署。

springcloud=分布式微服務架構下的一站式解決方案,

是各個微服務架構落地技術的集合體,俗稱微服務全家桶。

springboot專注於快速方便的開發單個個體微服務。

springcloud是關注全域性的微服務協調整理治理框架,它將springboot開發的乙個個單體微服務整合並管理起來,

為各個微服務之間提供,配置管理、服務發現、斷路器、路由、微**、事件匯流排、全域性鎖、決策競選、分布式會話等等整合服務

springboot可以離開springcloud獨立使用開發專案,但是springcloud離不開springboot,屬於依賴的關係.

springboot專注於快速、方便的開發單個微服務個體,springcloud關注全域性的服務治理框架。

最大區別:springcloud拋棄了dubbo的rpc通訊,採用的是基於http的rest方式。

嚴格來說,這兩種方式各有優劣。雖然從一定程度上來說,後者犧牲了服務呼叫的效能,但也避免了上面提到的原生rpc帶來的問題。而且rest相比rpc更為靈活,服務提供方和呼叫方的依賴只依靠一紙契約,不存在**級別的強依賴,這在強調快速演化的微服務環境下,顯得更加合適。

品牌機與組裝機的區別

很明顯,spring cloud的功能比dubbo更加強大,涵蓋面更廣,而且作為spring的拳頭專案,它也能夠與spring framework、spring boot、spring data、spring batch等其他spring專案完美融合,這些對於微服務而言是至關重要的。使用dubbo構建的微服務架構就像組裝電腦,各環節我們的選擇自由度很高,但是最終結果很有可能因為一條記憶體質量不行就點不亮了,總是讓人不怎麼放心,但是如果你是一名高手,那這些都不是問題;而spring cloud就像品牌機,在spring source的整合下,做了大量的相容性測試,保證了機器擁有更高的穩定性,但是如果要在使用非原裝元件外的東西,就需要對其基礎有足夠的了解。

社群支援與更新力度

最為重要的是,dubbo停止了5年左右的更新,雖然2017.7重啟了。對於技術發展的新需求,需要由開發者自行拓展公升級(比如當當網弄出了dubbox),這對於很多想要採用微服務架構的中小軟體組織,顯然是不太合適的,中小公司沒有這麼強大的技術能力去修改dubbo原始碼+周邊的一整套解決方案,並不是每乙個公司都有阿里的大牛+真實的線上生產環境測試過。

部分社群:

Springcloud元件介紹

springcloud是基於springboot基礎之上開發的微服務框架,springcloud是一套目前非常完整的微服務解決方案框架,其內容包含服務治理 註冊中心 配置管理 斷路器 智慧型路由 微 控制匯流排 全域性鎖 分布式會話等。springcloud包含眾多的子專案 eureka 服務治理 ...

springCloud元件介紹

1.eureka 負責服務的註冊與發現 主要分為eurekaserver 服務端 和eurekaclient 客戶端 工作原理 在啟動應用之後,eureka客戶端會向服務端註冊自己的服務,同時服務端的資訊會快取到本地,客戶端會向服務端週期性的心跳互動更新服務資訊。2.ribbon主要做負載均衡的作用...

Spring Cloud體系介紹

上圖只是spring cloud體系的一部分,spring cloud共整合了19個子專案,裡面都包含乙個或者多個第三方的元件或者框架!spring cloud 工具框架 1 spring cloud config 配置中心,利用git集中管理程式的配置。當然這個數量還在一直增加.微服務是一種架構的...