SpringCloud微服務全家桶-第一篇!為什麼要用微服務

SpringCloud微服務全家桶-第一篇!為什麼要用微服務

從今天開始,學習SpringCloud微服務全家桶。

一、引導

1、什麼是微服務?

2、微服務之間是如何獨立通訊的

3、springCloud和Dubbo有哪些區別?

4、什麼是服務熔斷?什麼是服務降級

5、微服務的優缺點分別是什麼?

6、微服務技術棧有哪些?

7、eureka和zookeeper都可以提供服務註冊與發現的功能,請說說兩個的區別?

2、微服務概述

1、微服務與微服務架構是什麼

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

一個微服務提供單個業務功能的服務,一個服務做一件事,從技術角度看就是一種小而獨立的

處理過程,類似進程概念,能夠自行單獨啟動或銷燬,擁有自己獨立的數據庫。

但通常而言, 微服務架構是一種架構模式或者說是一種架構風格,它提倡將單一應用程序劃

分成一組小的服務,每個服務運行在其獨立的自己的進程中,服務之間互相協調、互相配合,

為用戶提供最終價值。服務之間採用輕量級的通信機制互相溝通(通常是基於HTTP的RESTful

API)。每個服務都圍繞著具體業務進行構建,並且能夠被獨立地部署到生產環境、類生產環

境等。另外,應儘量避免統一的、集中式的服務管理機制,對具體的一個服務而言,應根據業

務上下文,選擇合適的語言、工具對其進行構建,可以有一個非常輕量級的集中式管理來協調

這些服務,可以使用不同的語言來編寫服務,也可以使用不同的數據存儲。

2、優缺點

優點

每個服務足夠內聚,足夠小,代碼容易理解這樣能聚焦一個指定的業務功能或業務需求

開發簡單、開發效率提高,一個服務可能就是專一的只幹一件事。

微服務能夠被小團隊單獨開發,這個小團隊是2到5人的開發人員組成。

微服務是松耦合的,是有功能意義的服務,無論是在開發階段或部署階段都是獨立的。

微服務能使用不同的語言開發。

易於和第三方集成,微服務允許容易且靈活的方式集成自動部署,通過持續集成工具,如Jenkins, Hudson, bamboo 。

微服務易於被一個開發人員理解,修改和維護,這樣小團隊能夠更關注自己的工作成果。無需通過合作才能體現價值。

微服務允許你利用融合最新技術。

微服務只是業務邏輯的代碼,不會和HTML,CSS 或其他界面組件混合。

每個微服務都有自己的存儲能力,可以有自己的數據庫。也可以有統一數據庫。

缺點

開發人員要處理分佈式系統的複雜性

多服務運維難度,隨著服務的增加,運維的壓力也在增大

系統部署依賴

服務間通信成本

數據一致性

系統集成測試

性能監控……

3、微服務技術有哪些

SpringCloud微服務全家桶-第一篇!為什麼要用微服務

微服務條目落地技術

服務開發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等

全鏈路追蹤Zipkin,Brave、Dapper等

服務部署Docker、OpenStack、Kubernetes等

數據流操作開發包SpringCloud Stream(封裝與Redis,Rabbit、Kafka等發送接收消息)

事件消息總線Spring Cloud Bus

4、SpringCloud入門概述

1、SpringCloud是什麼

SpringCloud,基於SpringBoot提供了一套微服務解決方案,包括服務註冊與發現,配置中

心,全鏈路監控,服務網關,負載均衡,熔斷器等組件,除了基於NetFlix的開源組件做高度

抽象封裝之外,還有一些選型中立的開源組件。

SpringCloud利用SpringBoot的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,

SpringCloud為開發人員提供了快速構建分佈式系統的一些工具,包括配置管理、服務發現、

斷路器、路由、微代理、事件總線、全局鎖、決策競選、分佈式會話等等,它們都可以用

SpringBoot的開發風格做到一鍵啟動和部署。

SpringBoot並沒有重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗

的服務框架組合起來,通過SpringBoot風格進行再封裝屏蔽掉了複雜的配置和實現原理,最

終給開發者留出了一套簡單易懂、易部署和易維護的分佈式系統開發工具包。

SpringCloud微服務全家桶-第一篇!為什麼要用微服務

SpringCloud=分佈式微服務架構下的一站式解決方案,是各個微服務架構落地

技術的集合體,俗稱微服務全家桶

2、SpringCloud和SpringBoot是什麼關係

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

SpringCloud是關注全局的微服務協調整理治理框架,它將SpringBoot開發的一個個單體微

服務整合並管理起來,為各個微服務之間提供,配置管理、服務發現、斷路器、路由、微代

理、事件總線、全局鎖、決策競選、分佈式會話等等集成服務

SpringBoot可以離開SpringCloud獨立使用開發項目,但是SpringCloud離不

SpringBoot,屬於依賴的關係.

SpringBoot專注於快速、方便的開發單個微服務個體,SpringCloud關注全局的服務治理框

架。

3、SpringCloud VS DUBBO對比

SpringCloud微服務全家桶-第一篇!為什麼要用微服務

這個是從官網上找到的權威數據

SpringCloud微服務全家桶-第一篇!為什麼要用微服務

dubbo的開發者原話,兩者定位不一樣

4、SpringCloud能幹嘛!

1、Distributed/versioned configuration(分佈式/版本控制配置)

2、Service registration and discovery(服務註冊與發現)

3、Routing(路由)

4、Service-to-service calls(服務到服務的調用)

5、Load balancing(負載均衡配置)

6、Circuit Breakers(斷路器)

7、Distributed messaging(分佈式消息管理)

5、SpringCloud全家桶

SpringCloud微服務全家桶-第一篇!為什麼要用微服務

SpringCloud微服務全家桶-第一篇!為什麼要用微服務

SpringCloud微服務全家桶-第一篇!為什麼要用微服務

SpringCloud微服務全家桶-第一篇!為什麼要用微服務

SpringCloud微服務全家桶-第一篇!為什麼要用微服務

6、簡單介紹

服務的註冊與發現(Eureka)

服務消費者(rest+Ribbon)

服務消費者(Feign)

斷路器(Hystrix)

斷路器監控(Hystrix Dashboard)

路由網關(Zuul)

分佈式配置中心(Spring Cloud Config)

消息總線(Spring Cloud Bus)

服務鏈路追蹤(Spring Cloud Sleuth)

參考網站:https://springcloud.cc/spring-cloud-dalston.html

http://projects.spring.io/spring-cloud/

這是第一篇,我會寫完SpringCloud全套。


分享到:


相關文章: