微服務(wù)首談

微服務(wù)簡介

首先來談一下什么是微服務(wù)? 微服務(wù)近幾年如此過火,到底是什么優(yōu)勢吸引了無數(shù)開發(fā)人員熱衷于微服務(wù)架構(gòu).微服務(wù)(Microservices)即是一種系統(tǒng)架構(gòu)風(fēng)格,將原來的單體應(yīng)用架構(gòu)拆分為若干個相互獨(dú)立的小型服務(wù),每個服務(wù)可以獨(dú)立運(yùn)行,服務(wù)與服務(wù)之間通過基于HTTP的Restful API完成通信.被拆分的每個服務(wù)完成某一項的業(yè)務(wù)功能,或是一些耦合度比較高的業(yè)務(wù)功能,每個服務(wù)都有自身的數(shù)據(jù)存儲,業(yè)務(wù)開發(fā),測試以及部署方案.可以使用不同的語言進(jìn)行各個服務(wù)的開發(fā).

微服務(wù)架構(gòu)特性

  • 服務(wù)組件化
  • 按照業(yè)務(wù)組織團(tuán)隊
  • 做"產(chǎn)品"的態(tài)度
  • 智能端點(diǎn)與啞管道
  • 去中心化治理
  • 去中心化管理數(shù)據(jù)基
  • 礎(chǔ)設(shè)施自動化
  • 容錯設(shè)計
  • 演進(jìn)式設(shè)計
  • 微服務(wù)的選擇
    近幾年微服務(wù)幾乎被絕大多數(shù)開發(fā)人員所談及,也有無數(shù)的架構(gòu)先驅(qū)在實際項目中應(yīng)用微服務(wù)架構(gòu)理念,為微服務(wù)架構(gòu)的發(fā)展,實踐做出了不可忽視的貢獻(xiàn),尤以互聯(lián)網(wǎng)大公司共享最為突出,如國內(nèi)的阿里巴巴更是走在前列.如下有諸多:
    服務(wù)治理: 阿里巴巴開源的Dubbo(已是Apache旗下頂級項目),Netflix的Eureka和Apache的Consul等.
    服務(wù)追蹤:SpringCloud的Sleuth,Twitter的Zipkin
    分布式配置管理:Netflix的Archaius,SpringCloud的Config,淘寶的Diamond等.
    ......
    實施微服務(wù)架構(gòu)的方案有很多,但是對于不同的公司和組織加之眾多的開源框架,可以說,很難找到兩個完全一致的架構(gòu)方案.面對如此多的解決方案,對于新手來說,選擇何種解決方案,無疑是一個棘手的問題,如果對每一種進(jìn)行嘗試,分析,勢必耗時耗力,并不是一個明智的選擇.
    而SpringCloud的出現(xiàn),無疑是廣大開發(fā)人員的一大福音,其初衷并非是解決微服務(wù)架構(gòu)中的某一個問題,而是一個解決微服務(wù)架構(gòu)實施的綜合性解決方案.其整合了許多被實踐證明過的框架作為實施方案的基礎(chǔ)部件,并在這個基礎(chǔ)上創(chuàng)建了一批優(yōu)秀的邊緣組件,為開發(fā)人員提供了極大的便利性.下面是SpringCloud簡介
    SpringCloud簡介
    SpringCloud是一個基于SpringBoot實現(xiàn)的微服務(wù)架構(gòu)開發(fā)利器.為實現(xiàn)微服務(wù)架構(gòu)中涉及到的配置管理,服務(wù)治理,斷路器,智能路由,控制總線,分布式會話,集群狀態(tài)管理等提供了一種簡單的開發(fā)方式.

SpringCloud包含眾多子項目,例如有:
Spring Cloud Config:配置管理工具,支持使用Git存儲配置內(nèi)容.
Spring Cloud Netflix:核心組件,對多個Netflix OSS開源套件進(jìn)行整合
Eureka: 服務(wù)治理組件,包含服務(wù)注冊中心,服務(wù)注冊與發(fā)現(xiàn)機(jī)制的實現(xiàn)
Hystrix: 容錯管理組件,實現(xiàn)斷路器模式,幫助服務(wù)依賴中出現(xiàn)的延遲和為故障提供強(qiáng)大的容錯能力.
Ribbon: 客戶端負(fù)載均衡的服務(wù)調(diào)用組件.
Feign: 基于Ribbon和Hystrix的聲明式服務(wù)調(diào)用組件
Zuul:網(wǎng)關(guān)組件,提供智能路由,訪問過濾等功能.
Archaius: 外部化配置組件.
Spring Cloud Bus:事件,消息總線,用于傳播集群中的狀態(tài)變化或事件.
Spring Cloud Cluster:針對Zookeeper,Redis,Consul的選舉算法和通用狀態(tài)模式的實現(xiàn)
Spring Cloud Consul:服務(wù)發(fā)現(xiàn)與配置管理工具.
Spring Cloud Stream:通過Redis,Rabbit或者Kafka實現(xiàn)的消費(fèi)微服務(wù),可通過簡單的聲明式模型來發(fā)送和接收消息.
Spring Cloud Security:安全工具包,提供在Zuul代理中對OAuth2客戶端請求的中繼器
Spring Cloud Zookeeper:基于Zookeeper的服務(wù)發(fā)現(xiàn)與配置管理組件
Spring Cloud Starters:Spring Cloud的基礎(chǔ)組件,基于Spring Boot風(fēng)格項目的基礎(chǔ)依賴模塊
Spring Cloud CLI:在Groovy中快速創(chuàng)建Spring Cloud應(yīng)用的Spring Cloud CLI插件.

文章如有錯誤之處,敬請各位高抬貴手指正.順帶點(diǎn)個關(guān)注多多支持,謝謝!!!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容