目錄:
一、國內(nèi)主流微服務(wù)技術(shù)棧
二、Spring Cloud Alibaba介紹
三、總結(jié)
一、國內(nèi)主流微服務(wù)技術(shù)棧
之前有段時間阿里開源的dubbo處于不怎么維護(hù)的階段,正好這段時間Spring cloud完善的技術(shù)棧出現(xiàn),導(dǎo)致很多中小型公司開始轉(zhuǎn)型到Spring cloud。Dubbo的使用比例急劇下降。所以現(xiàn)階段國內(nèi)微服務(wù)這塊,按公司實力劃分:
大公司,以純自研或者dubbo+自研為主
中小公司,以Spring cloud netflix技術(shù)棧為主,(趕緊搭建起來做業(yè)務(wù),哪有空搞研發(fā))
但是最近一年多,情況又產(chǎn)生了變化,阿里的dubbo重啟維護(hù),日漸活躍起來,同時阿里把自己的微服務(wù)技術(shù)棧融入進(jìn)了spring cloud體系和標(biāo)準(zhǔn),形成了一個spring cloud alibaba微服務(wù)技術(shù)組件,也就是以nacos、dubbo、seata、sentinal、rocketmq等技術(shù)為核心的一套技術(shù)體系
spring cloud alibaba 與 spring cloud netflix對比
注冊中心:nacos -> eureka
RPC框架:dubbo -> feign+ribbon
分布式事務(wù):seata -> 無
限流/熔斷/降級:sentinel -> hystrix
API網(wǎng)關(guān):無(Spring Cloud Gateway) -> zuul
后來大家也都知道,spring cloud netflix微服務(wù)技術(shù)組件,開始更新的非常不活躍,netflix公司公開宣布他之前開源的一些微服務(wù)組件未來就不會怎么更新了,這就導(dǎo)致spring cloud netflix微服務(wù)技術(shù)組件的未來是不是有點(diǎn)不太光明,而spring cloud alibaba微服務(wù)技術(shù)組件,活躍的更新,社區(qū)也重啟,做得很好,宣講,演講,采訪,開始比較活躍起來,這必將是未來微服務(wù)的主流技術(shù)棧。
目前很多公司也開始嘗試用spring cloud alibaba的技術(shù)組件,再加上一些其他的開源組件,比如Prometheus,ELK,Spring Cloud Gateway,等等,可以組成一套全新的以國內(nèi)開源技術(shù)為核心的微服務(wù)體系。
基于以上情況,作為技術(shù)人員,有必要及時跟進(jìn)學(xué)習(xí)一下Spring Cloud Alibaba技術(shù)棧了。
二、Spring Cloud Alibaba介紹
Spring Cloud Alibaba?致力于提供微服務(wù)開發(fā)的一站式解決方案。此項目包含開發(fā)分布式應(yīng)用微服務(wù)的 必需組件,方便開發(fā)者通過?Spring Cloud?編程模型輕松使用這些組件來開發(fā)分布式應(yīng)用服務(wù)。依托?Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以將?Spring Cloud?應(yīng)用接入阿里微服 務(wù)解決方案,通過阿里中間件來迅速搭建分布式應(yīng)用系統(tǒng)。
1、主要功能
服務(wù)限流降級:默認(rèn)支持?WebServlet、WebFlux,?OpenFeign、RestTemplate、Spring CloudGateway,?Zuul,?Dubbo?和?RocketMQ?限流降級功能的接入,可以在運(yùn)行時通過控制臺 實時修改限流降級規(guī)則,還支持查看限流降級?Metrics?監(jiān)控。
服務(wù)注冊與發(fā)現(xiàn):適配 Spring Cloud 服務(wù)注冊與發(fā)現(xiàn)標(biāo)準(zhǔn),默認(rèn)集成了 Ribbon 的支持。分布式配置管理:支持分布式系統(tǒng)中的外部化配置,配置更改時自動刷新。
消息驅(qū)動能力:基于 Spring Cloud Stream 為微服務(wù)應(yīng)用構(gòu)建消息驅(qū)動能力。
分布式事務(wù):使用 @GlobalTransactional 注解, 高效并且對業(yè)務(wù)零侵入地解決分布式事務(wù)問題。
阿里云對象存儲:阿里云提供的海量、安全、低成本、高可靠的云存儲服務(wù)。支持在任何應(yīng)用、任 何時間、任何地點(diǎn)存儲和訪問任意類型的數(shù)據(jù)。
分布式任務(wù)調(diào)度:提供秒級、精準(zhǔn)、高可靠、高可用的定時(基于 Cron 表達(dá)式)任務(wù)調(diào)度服務(wù)。同時提供分布式的任務(wù)執(zhí)行模型,如網(wǎng)格任務(wù)。網(wǎng)格任務(wù)支持海量子任務(wù)均勻分配到所有 Worker(schedulerx-client)上執(zhí)行。
阿里云短信服務(wù):覆蓋全球的短信服務(wù),友好、高效、智能的互聯(lián)化通訊能力,幫助企業(yè)迅速搭建 客戶觸達(dá)通道。
2、組件
Sentinel:把流量作為切入點(diǎn),從流量控制、熔斷降級、系統(tǒng)負(fù)載保護(hù)等多個維度保護(hù)服務(wù)的穩(wěn) 定性。
Nacos:一個更易于構(gòu)建云原生應(yīng)用的動態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺。
RocketMQ:一款開源的分布式消息系統(tǒng),基于高可用分布式集群技術(shù),提供低延時的、高可靠 的消息發(fā)布與訂閱服務(wù)。
Dubbo:Apache DubboTM?是一款高性能?Java RPC?框架。Seata:阿里巴巴開源產(chǎn)品,一個易于使用的高性能微服務(wù)分布式事務(wù)解決方案。
Alibaba Cloud ACM:一款在分布式架構(gòu)環(huán)境中對應(yīng)用配置進(jìn)行集中管理和推送的應(yīng)用配置中心 產(chǎn)品。
Alibaba Cloud OSS: 阿里云對象存儲服務(wù)(Object Storage Service,簡稱 OSS),是阿里云提 供的海量、安全、低成本、高可靠的云存儲服務(wù)。您可以在任何應(yīng)用、任何時間、任何地點(diǎn)存儲和 訪問任意類型的數(shù)據(jù)。
Alibaba Cloud SchedulerX: 阿里中間件團(tuán)隊開發(fā)的一款分布式任務(wù)調(diào)度產(chǎn)品,提供秒級、精 準(zhǔn)、高可靠、高可用的定時(基于 Cron 表達(dá)式)任務(wù)調(diào)度服務(wù)。
Alibaba Cloud SMS: 覆蓋全球的短信服務(wù),友好、高效、智能的互聯(lián)化通訊能力,幫助企業(yè)迅速 搭建客戶觸達(dá)通道。
三、總結(jié):
netflix很多組件維護(hù)的都不夠活躍了,所以衰退是必然的,pass
Spring cloud 阿里巴巴是國內(nèi)的開源項目,都是中文文檔,中文社區(qū),交流方便,社區(qū)也很活躍,所以這套技術(shù)棧必將是面向未來的一套技術(shù)體系。