微服務 springcloud

微服務

微服務架構:是一種架構模式,將一個應用程序劃分爲一組小的服務,每個服務運行在自己單獨的進程中,服務之間通過HTTP的restful API相互溝通,相互協作、相互配合,爲用戶提供最終服務。強調避免集中式、統一的服務管理機制。

微服務·:是一個個微小的服務,強調的是服務的大小,狹義地說就是idea中一個個的model。將一個應用程序拆分後的各個獨立模塊。


微服務就好比醫院中一個個獨立的科室,牙科、骨科、外科等。而這些獨立的科室就構成了醫院,這就是微服務架構。

1

爲什麼有微服務?


傳統的開發,將一個應用程序放在一個項目裏面,打成一個war包,所有的模塊,例如:訂單、商品、交易、庫存等,都在一個項目裏面,這種服務稱爲巨石服務。All in one


這種架構一旦某個模塊出問題,整個項目就會受到影響,甚至崩潰


分佈式: 將一個服務應用,拆分爲各個模塊/服務,將模塊獨立出來,單獨開發。各自有各自微小的進程,讓專業的人,專業的模塊做專業的事,讓分工更加明確。各個模塊獨立部署


這種架構,服務之間不會影響,哪個模塊出問題,受影響的只有那個模塊,其它模塊仍然可以工作。


微服務的作用

去耦合,各自的服務模塊可以擁有自己的數據庫,通過springcloudconfig,進行配置共同協作,各個模塊可以單獨的啓動和銷燬,類似於進程的概念。


微服務的優缺點

優點: 微服務讓分工更加明確,開發效率提高。鬆耦合,代碼更容易理解,部署靈活,可以接納新的技術,擴展性好。

缺點: 開發人員要理解分佈式系統的複雜性,隨着服務的增多,運維難度壓力增大。微服務之間的通信成本,依賴部署,數據的一致性如何保證,龐大的應用如何集成測試,如何監控性能…


微服務技術棧

微服務技術棧: 多種技術的集合體。


 我們在討論一個分佈式微服務的架構的話,它需要有哪些維度


一個分佈式微服務的架構 E時代下的數字化生活

服務治理(Dubbo等) 手機(HUAWEI等)

服務註冊(Zookeeper等) 電腦(lenovo等)

服務調用 路由器

服務負載均衡(nginx) 充電寶

服務監控 智能音箱

…… ……

SpringCloud 提供以上技術的集合 小米科技都可以提供以上服務

微服務技術棧有哪些 微服務框架案例:www.b123.com


微服務條目 落地技術 備註

服務開發 Springboot、Spring、SpringMVC

服務配置與管理 Netfix公司的Archaius、阿里的Diamond

服務註冊與發現 Eureka、Consul、Zookeeper等

服務調用 Rest、RPC、gRPC 

服務熔斷 Hystrix、Envoy等

負-載-均-衡 Ribbon、Nginx等

服務接口調用(客戶端調用服務的簡化工具) Feign等

消息隊列 Kafka、RabbitMQ、ActiveMQ等

服務配置中心管理 SpringCloudConfig、Chef等

服務路由(API網關) Zuui等

服務監控 Zabbix、Nagios、Metrics、Spectator等

全鏈路追蹤 Zipkin、Brave、Dapper等

服務部署 Docker、OpenStack、Kubernetes等

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

事件消息總線 SpringCloud Bus

爲什麼選SpringCloud

與其它分佈式微服務框架進行對比,它社區活躍度高,阿里的Dubbo已經五年沒有維護了,現在HSF(High Speed Framework)
支持的微服務條目多


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章