【從零開始學(xué)微服務(wù)】07.微服務(wù)常用的開發(fā)框架


大家好,歡迎來到萬貓學(xué)社,跟我一起學(xué),你也能成為微服務(wù)專家。

微服務(wù)架構(gòu)該怎么落地?選用什么樣的技術(shù)棧?所有的互聯(lián)網(wǎng)公司都在積極嘗試自己的微服務(wù)落地方案。

Spring Cloud
其中在Java領(lǐng)域最引人注目的就是 Spring Cloud 提供的方案了。

Spring Cloud 被稱為構(gòu)建分布式微服務(wù)系統(tǒng)的“全家桶”,它并不是某一門技術(shù),而是一系列微服務(wù)解決方案或框架的有序集合。它將市面上成熟的、經(jīng)過驗證的微服務(wù)框架整合起來,并進行封裝,最終為開發(fā)人員提供的一套簡單易懂、易部署和易維護的分布式系統(tǒng)開發(fā)工具包。

Spring Cloud 是微服務(wù)架構(gòu)下的一站式解決方案。Spring Cloud 專注于全局微服務(wù)的協(xié)調(diào)和治理工作。換句話說,Spring Cloud 相當于微服務(wù)的大管家,負責(zé)將 Spring Boot 開發(fā)的一個個微服務(wù)管理起來,并為它們提供配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、等等分布式場景下的服務(wù)能力。

Spring Cloud 的常用組件
Spring Cloud Consul:服務(wù)注冊中心組件,包含服務(wù)注冊與發(fā)現(xiàn)功能的實現(xiàn)。

Spring Cloud Config:配置管理組件,支持使用 Git 存儲配置內(nèi)容,實現(xiàn)應(yīng)用配置的外部化存儲,并支持在客戶端對配置進行刷新、加密、解密等操作。

Spring Cloud LoadBalancer:客戶端負載均衡組件。

Spring Cloud OpenFeign:聲明式服務(wù)調(diào)用組件。

Spring Cloud Gateway:網(wǎng)關(guān)框架,提供了網(wǎng)關(guān)的基本功能,例如安全、監(jiān)控/指標和限流等。

Spring Cloud Sleuth:分布式鏈路跟蹤組件,能完美整合 Zipkin。

Spring Cloud Stream:消息中間件組件,集成了 Kafka 和 RabbitMQ 等消息中間件,實現(xiàn)了應(yīng)用程序與消息中間件之間的隔離。

Spring Cloud Sentinel:容錯管理組件,為微服務(wù)提供流量控制、熔斷降級的功能。

Spring Cloud Alibaba
Spring Cloud Alibaba 是 Spring Cloud下的一個子項目,是阿里巴巴結(jié)合自身豐富的微服務(wù)實踐而推出的解決方案,2018 年 7 月,Spring Cloud Alibaba 正式開源,并進入 Spring Cloud 孵化器中孵化。2019 年 7 月,Spring Cloud 官方宣布 Spring Cloud Alibaba 畢業(yè),并將倉庫遷移到 Alibaba Github OSS 下。


Spring Cloud Alibaba 吸收了 Spring Cloud Netflix 的核心架構(gòu)思想,并進行了高性能改進。自 Spring Cloud Netflix 進入停更維護后,Spring Cloud Alibaba 逐漸代替它成為主流的微服務(wù)框架,是 Spring Cloud 第二代實現(xiàn)的主要組成部分。

Spring Cloud Alibaba 的常用組件
Dubbo:Apache Dubbo 是一款高性能 Java RPC 框架。

Nacos:一個更易于構(gòu)建云原生應(yīng)用的動態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺。

Sentinel:把流量作為切入點,從流量控制、熔斷降級、系統(tǒng)負載保護等多個維度保護服務(wù)的穩(wěn)定性。

Seata:阿里巴巴開源產(chǎn)品,一個易于使用的高性能微服務(wù)分布式事務(wù)解決方案。

RocketMQ:一款開源的分布式消息系統(tǒng),基于高可用分布式集群技術(shù),提供低延時的、高可靠的 消息發(fā)布與訂閱服務(wù)。

Dubbo
Dubbo 是一款 RPC 服務(wù)開發(fā)框架,最初在 2008 年由 Alibaba 捐獻開源,在 2017 年,Dubbo 正式捐獻到 Apache 軟件基金會并成為 Apache 頂級項目。

Dubbo用于解決微服務(wù)架構(gòu)下的服務(wù)治理與通信問題,官方提供了 Java、Golang 等多語言 SDK 實現(xiàn)。使用 Dubbo 開發(fā)的微服務(wù)原生具備相互之間的遠程地址發(fā)現(xiàn)與通信能力, 利用 Dubbo 提供的豐富服務(wù)治理特性,可以實現(xiàn)諸如服務(wù)發(fā)現(xiàn)、負載均衡、流量調(diào)度等服務(wù)治理訴求。




作者: 萬貓學(xué)社


歡迎關(guān)注微信公眾號 :萬貓學(xué)社