引言
- 微服務這個詞的熱度自從它出現(xiàn)以后,就一直高燒不退萍鲸,而微服務之所以這么火,其實和近幾年互聯(lián)網(wǎng)的氛圍是分不開的柳击。
- 與傳統(tǒng)行業(yè)不同猿推,互聯(lián)網(wǎng)企業(yè)有一個特點,那就是市場擴張的速度非常之快捌肴,可能幾天的時間一個原本不知名的公司蹬叭,搖生一變,就成一個盡人皆知的互聯(lián)網(wǎng)獨角獸公司状知。
- 而伴隨著這些秽五,接踵而來的,就是業(yè)務的極速變化與規(guī)模的擴張饥悴,這就對應用應對變化的能力提出了很高的要求坦喘。
- 微服務,就是專門質(zhì)量這種情況的良藥西设。也因此瓣铣, 現(xiàn)在絕大多數(shù)互聯(lián)網(wǎng)公司都逐漸引入了微服務架構(gòu),以便于應對發(fā)展越來越快的業(yè)務需求贷揽。
- 如今作為一名程序員棠笑,特別是Java程序員如果說不知道微服務都不好意思出門見人。
- 而就在
2018年10月31日凌晨禽绪,這個偉大的日子里蓖救,Spring Cloud Alibaba 正式入駐了Spring Cloud官方孵化器洪规,并在maven中央倉庫發(fā)布了第一個版本。
而從那天起一個新的微服務領袖誕生了循捺。
什么是Spring Cloud
- 說起微服務就不得不提到Spring Cloud和Spring 是個神奇的團隊斩例。
- 說起這個團隊,他們的代碼質(zhì)量从橘,包括他們的工匠精神念赶,都是所有程序員應該學習的榜樣。
Spring Cloud是什么洋满?
- 很多人雖然一直在用Spring Cloud,但其實并不了解Spring Cloud到底是什么晶乔,只知道我做微服務珍坊,可以選擇使用Spring Cloud.
- 首先我們看下Spring Cloud官方的介紹牺勾,其實一句話基本上說出來Spring Cloud的本質(zhì)。
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems.Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer's own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.
翻譯:Spring Cloud提供了一些工具阵漏,可以讓開發(fā)者快速構(gòu)建基于一些通用模式的分布式應用驻民。
分布式應用的協(xié)調(diào)都遵循“鍋爐板模式”(boiler plate patterns),使用Spring Cloud以后履怯,開發(fā)者可以更快的構(gòu)建實現(xiàn)了這些模式的服務和應用回还。而這些服務和應用,也可以很好的工作在任何分布式環(huán)境叹洲,包括開發(fā)者自己的筆記本柠硕,裸金屬數(shù)據(jù)中心以及像Cloud Foundry這樣的托管平臺。
- 和Spring團隊以往的做法相似运提,不管是之前的Spring Framework蝗柔,還是后來的Spring Boot,Spring團隊一直致力于讓開發(fā)者可以
“更快更好”
的做開發(fā)。 - 這正是Spring團隊在開發(fā)者圈子中口碑一直很好的原因民泵,Spring團隊一直為開發(fā)者服務癣丧,而且是開源的,可以說Java之所以這么火栈妆,Spring團隊功不可沒胁编。
Spring Cloud提供了那些工具
- Spring Cloud官方文檔中,我可以摘取到Spring Cloud的核心功能鳞尔。
- Distributed/versioned configuration【分布式以及版本化的配置】
- Service registration and discovery【服務注冊與發(fā)現(xiàn)】
- Routing【路由】
- Service-to-service calls【服務調(diào)用】
- Load balancing【負載均衡】
- Circuit Breakers【斷路器】
- Distributed messaging【分布式消息】
上面的功能嬉橙,就是我們在開發(fā)微服務是經(jīng)常使用的,不過Spring 團隊厲害的地方就在于寥假,他們很少重復造輪子市框,而是讓別人幫他們造輪子。
比如最早的Spring Framework, Spring只是提供了IOC和AOP的核心功能昧旨,而具體的MVC框架拾给、ORM框架祥得、緩存等等,Spring也都只是提供了很好的支持和兼容蒋得,并不會去自己實現(xiàn)一個级及。
當然,除非對方做的不好额衙,比如Spring MVC
,就是因為當初的Struts2有著諸多的缺陷饮焦,Spring團隊看不下去,才站出來發(fā)不了SpringMVC(個人理解)窍侧,進而成立現(xiàn)金主流的MVC框架县踢。
同樣,Spring Cloud也是如此伟件, Spring Cloud的核心并沒有實現(xiàn)任何上述功能硼啤,只是制定了一套規(guī)范。Spring Cloud官方文檔的一段介紹:
Many of those features are covered by Spring Boot, on which Spring Cloud builds. Some more features are delivered by Spring Cloud as two libraries: Spring Cloud Context and Spring Cloud Commons. Spring Cloud Context provides utilities and special services for the
ApplicationContext
of a Spring Cloud application (bootstrap context, encryption, refresh scope, and environment endpoints). Spring Cloud Commons is a set of abstractions and common classes used in different Spring Cloud implementations (such as Spring Cloud Netflix and Spring Cloud Consul).
翻譯:
這些功能(就是上面列舉的功能)大部分是由Spring Boot覆蓋的斧账,而Spring Cloud基于Spring Boot構(gòu)建谴返。Spring Cloud作為兩個libraries提供了更多的功能。這兩個libraries分別是咧织,Spring Cloud Context
和Spring Cloud Commons
嗓袱。
- Spring Cloud Context提供了一些工具,以及一個Spring Cloud應用的
ApplicationContext的特殊服務习绢,比如bootstrap上下文(關于這個家伙渠抹,后面有機會筆者會詳細介紹)、加密闪萄、刷新梧却、環(huán)境端點這些功能。- Spring Cloud Commons則是一組抽象和在不同Spring Cloud實現(xiàn)(比如Spring Cloud Netflix和Spring Cloud Consul)中使用的通用類桃煎。
從官方介紹也可以看出Spring Cloud其實就是一套規(guī)范篮幢,而不是一個可以直接拿來使用的即用的框架。而Spring Cloud Negflix以及Spring Cloud Consul,才是基于Spring Cloud規(guī)范的實現(xiàn)方为迈。
而從Spring Cloud Alibaba發(fā)布那天開始三椿,Spring Cloud的實現(xiàn)又多了一種。
接下來的文章我們就來認識下什么是Spring Cloud Alibaba葫辐,以及它如何使用搜锰。