【從零開始學(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)過驗(yàn)證的微服務(wù)框架整合起來,并進(jìn)行封裝,最終為開發(fā)人員提供的一套簡單易懂、易部署和易維護(hù)的分布式系統(tǒng)開發(fā)工具包。
Spring Cloud 是微服務(wù)架構(gòu)下的一站式解決方案。Spring Cloud 專注于全局微服務(wù)的協(xié)調(diào)和治理工作。換句話說,Spring Cloud 相當(dāng)于微服務(wù)的大管家,負(fù)責(zé)將 Spring Boot 開發(fā)的一個(gè)個(gè)微服務(wù)管理起來,并為它們提供配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、等等分布式場景下的服務(wù)能力。
Spring Cloud 的常用組件
Spring Cloud Consul:服務(wù)注冊(cè)中心組件,包含服務(wù)注冊(cè)與發(fā)現(xiàn)功能的實(shí)現(xiàn)。
Spring Cloud Config:配置管理組件,支持使用 Git 存儲(chǔ)配置內(nèi)容,實(shí)現(xiàn)應(yīng)用配置的外部化存儲(chǔ),并支持在客戶端對(duì)配置進(jìn)行刷新、加密、解密等操作。
Spring Cloud LoadBalancer:客戶端負(fù)載均衡組件。
Spring Cloud OpenFeign:聲明式服務(wù)調(diào)用組件。
Spring Cloud Gateway:網(wǎng)關(guān)框架,提供了網(wǎng)關(guān)的基本功能,例如安全、監(jiān)控/指標(biāo)和限流等。
Spring Cloud Sleuth:分布式鏈路跟蹤組件,能完美整合 Zipkin。
Spring Cloud Stream:消息中間件組件,集成了 Kafka 和 RabbitMQ 等消息中間件,實(shí)現(xiàn)了應(yīng)用程序與消息中間件之間的隔離。
Spring Cloud Sentinel:容錯(cuò)管理組件,為微服務(wù)提供流量控制、熔斷降級(jí)的功能。
Spring Cloud Alibaba
Spring Cloud Alibaba 是 Spring Cloud下的一個(gè)子項(xiàng)目,是阿里巴巴結(jié)合自身豐富的微服務(wù)實(shí)踐而推出的解決方案,2018 年 7 月,Spring Cloud Alibaba 正式開源,并進(jìn)入 Spring Cloud 孵化器中孵化。2019 年 7 月,Spring Cloud 官方宣布 Spring Cloud Alibaba 畢業(yè),并將倉庫遷移到 Alibaba Github OSS 下。
Spring Cloud Alibaba 吸收了 Spring Cloud Netflix 的核心架構(gòu)思想,并進(jìn)行了高性能改進(jìn)。自 Spring Cloud Netflix 進(jìn)入停更維護(hù)后,Spring Cloud Alibaba 逐漸代替它成為主流的微服務(wù)框架,是 Spring Cloud 第二代實(shí)現(xiàn)的主要組成部分。
Spring Cloud Alibaba 的常用組件
Dubbo:Apache Dubbo 是一款高性能 Java RPC 框架。
Nacos:一個(gè)更易于構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺(tái)。
Sentinel:把流量作為切入點(diǎn),從流量控制、熔斷降級(jí)、系統(tǒng)負(fù)載保護(hù)等多個(gè)維度保護(hù)服務(wù)的穩(wěn)定性。
Seata:阿里巴巴開源產(chǎn)品,一個(gè)易于使用的高性能微服務(wù)分布式事務(wù)解決方案。
RocketMQ:一款開源的分布式消息系統(tǒng),基于高可用分布式集群技術(shù),提供低延時(shí)的、高可靠的 消息發(fā)布與訂閱服務(wù)。
Dubbo
Dubbo 是一款 RPC 服務(wù)開發(fā)框架,最初在 2008 年由 Alibaba 捐獻(xiàn)開源,在 2017 年,Dubbo 正式捐獻(xiàn)到 Apache 軟件基金會(huì)并成為 Apache 頂級(jí)項(xiàng)目。
Dubbo用于解決微服務(wù)架構(gòu)下的服務(wù)治理與通信問題,官方提供了 Java、Golang 等多語言 SDK 實(shí)現(xiàn)。使用 Dubbo 開發(fā)的微服務(wù)原生具備相互之間的遠(yuǎn)程地址發(fā)現(xiàn)與通信能力, 利用 Dubbo 提供的豐富服務(wù)治理特性,可以實(shí)現(xiàn)諸如服務(wù)發(fā)現(xiàn)、負(fù)載均衡、流量調(diào)度等服務(wù)治理訴求。
作者: 萬貓學(xué)社
歡迎關(guān)注微信公眾號(hào) :萬貓學(xué)社