Spring Cloud Alibaba入門教程

教程倉庫:github Spring-Cloud-Alibaba-Learning


教程索引頁:


本章爲教程的概述部分





學習提綱

隨教程進度更新,學習提綱也會相應更新。

1-Nacos

要將一個單體項目拆分爲微服務,首先就要能夠做到服務註冊和發現,否則不同的微服務間是無法互相調用的。而Nacos就是由阿里巴巴開源的一款優秀的服務發現組件。

2-Ribbon

繼微服務間能夠互相發現與調用之後,我們緊接着要考慮的就是如何均衡對每個微服務節點的負載。

如果某個服務有若干個硬件性能相同的節點,也許我們會考慮爲它們儘可能平均分配負載;

如果某個服務有個硬件資源較好的節點A,還有個硬件資源不太好的節點B,也許我們會考慮把負載往A那裏傾斜一些,讓B少一些負載。

Ribbon是Netflix開源的負載均衡器,它內置了許多負載均衡算法,並且能夠非常方便地集成RestTemplate、Feign等服務調用組件。

3-Feign

RestTemplate編程式服務調用組件,而Feign是聲明式服務調用組件,能夠使遠程服務調用與其他業務邏輯解耦,提升代碼的可讀性、可維護性。在本節中,我們將使用Feign來替代RestTemplate,並實踐一種面向契約編程解決方案——使用Feign繼承,以簡化我們的代碼。



前置知識

比較熟練的SpringBoot開發經驗



Spring-Cloud-Alibaba是什麼

以下簡介參考自Spring Cloud Alibaba 新一代微服務解決方案

Spring Cloud Alibaba是阿里巴巴提供的微服務開發一站式解決方案,是阿里巴巴開源中間件與Spring Cloud體系的結合。

Spring-Cloud

SpringCloud 是若干個框架的集合,包括 spring-cloud-config、spring-cloud-bus 等近 20 個子項目,提供了服務治理、服務網關、智能路由、負載均衡、斷路器、監控跟蹤、分佈式消息隊列、配置管理等領域的解決方案。

Spring Cloud 通過 Spring Boot 風格的封裝,屏蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、容易部署的分佈式系統開發工具包。

一般來說,Spring Cloud 包含以下組件,主要以 Netflix 開源爲主:

Spring Cloud組件

Spring-Cloud-Alibaba

同 Spring Cloud 一樣,Spring Cloud Alibaba 也是一套微服務解決方案,包含開發分佈式應用微服務的必需組件,方便開發者通過 Spring Cloud 編程模型輕鬆使用這些組件來開發分佈式應用服務。

依託 Spring Cloud Alibaba,您只需要添加一些註解和少量配置,就可以將 Spring Cloud 應用接入阿里微服務解決方案,通過阿里中間件來迅速搭建分佈式應用系統。

作爲 Spring Cloud 體系下的新實現,Spring Cloud Alibaba 跟官方的組件或其它的第三方實現如 Netflix, Consul,Zookeeper 等對比,具備了更多的功能:

Spring Cloud各體系

Spring-Cloud-Alibaba主要組件

這幅圖是 Spring Cloud Alibaba 系列組件,其中包含了阿里開源組件,阿里雲商業化組件,以及集成Spring Cloud 組件。

Spring Cloud Alibaba包含組件

本教程中主要使用的組件

如下:

組件 實現
分佈式配置 Nacos
服務註冊/發現 Nacos
服務熔斷 Sentinel
服務調用 Feign
服務路由 Spring Cloud Gateway
分佈式消息 RocketMQ
負載均衡 Ribbon

開發環境/生產環境

ARTIFACT VERSION
JDK 8
SpringBoot 2.1.5
SpringCloud Greenwich.SR1
SpringCloudAlibaba 0.9.0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章