天天看點

2020預備春招:Spring Cloud 微服務架構實戰前言正文

前言

Spring cloud作為當下主流的微服務架構,讓我們實作微服務架構變得更加簡單快捷。Spring Cloud Ribbon是基于Netflix Ribbon實作的一套用戶端負載均衡的工具。它是一個基于HTTP和TCP的用戶端負載均衡器。它可以通過在用戶端中配置ribbonServerList來設定服務端清單去輪詢通路以達到均衡負載的作用。

正文

接下來為大家一份文檔,文檔内容包括:Spring Cloud概述、搭建開發環境、微服務釋出與調用、負載均衡、REST用戶端Feign、Spring Cloud的保護機制、微服務叢集網關、微服務與消息驅動、叢集配置中心等等,由于篇幅限制小編在這裡隻展示文章的部分大綱及内容。

Spring Cloud與Netlix

2020預備春招:Spring Cloud 微服務架構實戰前言正文

Spring Cloud并不是一個具體的架構,大家可以把它了解為一個工具箱,它提供的各。

工具,可以幫助我們快速建構分布式系統。Spring Cloud的各個項目基于Spring Boot,将Netlix的多個架構進行封裝,并且通過自動配置的方式将這些架構綁定到Spring的環境中,進而簡化了這些架構的使用。由于Spring Boot的簡便,使得我們在使用Spring Cloud時,很容易将Netflix各個架構整合進項目中。Spring Cloud下的Spring Cloud Netlix子產品,主要封裝了Netlix 的以下項目。

➢Eureka: 基于REST服務的分布式中間件,主要用于服務管理。

➢Hystrix: 容錯架構,通過添加延遲門檻值以及容錯的邏輯,幫助我們控制分布式系統間元件的互動。

➢Feign: 一個REST用戶端,目的是為了簡化Web Service用戶端的開發。

➢Ribbon: 負載均衡架構,在微服務叢集中為各個用戶端的通信提供支援,它主要實作中間層應用程式的負載均衡。

➢Zuul: 為微服務叢集提供代理、過濾、路由等功能。

Spring Cloud的主要子產品

2020預備春招:Spring Cloud 微服務架構實戰前言正文

除了Spring Cloud Netlix子產品外,Spring Cloud還包括以下幾個重要的子產品。

➢Spring Cloud Config: 為分布式系統提供了配置伺服器和配置用戶端,通過對它們的配置,可以很好地管理叢集中的配置檔案。

➢Spring Cloud Sleuth:服務跟蹤架構,可以與Zipkin、Apache HTrace和ELK等資料分析、服務跟蹤系統進行整合,為服務跟蹤、解決問題提供了便利。

➢Spring Cloud Stream:用于建構消息驅動微服務的架構,該架構在Spring Boot的基礎上,整合了Spring Integration來連接配接消息代理中間件。

➢Spring Cloud Bus:連接配接RabbitMQ、Kafka 等消息代理的叢集消息總線。

Ribbon簡介

2020預備春招:Spring Cloud 微服務架構實戰前言正文

Ribbon是Netlix下的負載均衡項目,它在叢集中為各個用戶端的通信提供了支援,它主要實作中間層應用程式的負載均衡。Ribbon 提供以下特性:

➢負載均衡器,可支援插拔式的負載均衡規則。

➢對多種協定提供支援,例如HTTP、TCP、 UDP。

➢內建了負載均衡功能的用戶端。

同為Netflix項目,Ribbon可以與Eureka整合使用,Ribbon同樣被內建到Spring Cloud中,作為spring-cloud-netflix項目中的子子產品。Spring Cloud将Ribbon的API進行了封裝,使用者可以使用封裝後的API來實作負載均衡,也可以直接使用Ribbon的原生API。

負載均衡器元件

2020預備春招:Spring Cloud 微服務架構實戰前言正文

Ribbon的負載均衡器主要與叢集中的各個伺服器進行通信,負載均衡器需要提供以下基礎功能:

➢維護伺服器的IP、DNS名稱等資訊。

➢根據特定的邏輯在伺服器清單中循環。

為了實作負載均衡的基礎功能,Ribbon 的負載均衡器有以下三大子子產品。

➢Rule: 一一個邏輯元件,這些邏輯将會決定從伺服器清單中傳回哪個伺服器執行個體。

➢Ping:該元件主要使用定時器來確定伺服器網絡可以連接配接。

➢ServerList: 伺服器清單,可以通過靜态的配置确定負載的伺服器,也可以動态指定伺服器清單。如果動态指定伺服器清單,則會有背景的線程來重新整理該清單。

一.Spring Cloud述

2020預備春招:Spring Cloud 微服務架構實戰前言正文

二.搭建開發環境

2020預備春招:Spring Cloud 微服務架構實戰前言正文

三.微服務釋出與調用

2020預備春招:Spring Cloud 微服務架構實戰前言正文