前言
Spring cloud作為當下主流的微服務架構,讓我們實作微服務架構變得更加簡單快捷。Spring Cloud Ribbon是基于Netflix Ribbon實作的一套用戶端負載均衡的工具。它是一個基于HTTP和TCP的用戶端負載均衡器。它可以通過在用戶端中配置ribbonServerList來設定服務端清單去輪詢通路以達到均衡負載的作用。
正文
接下來為大家一份文檔,文檔内容包括:Spring Cloud概述、搭建開發環境、微服務釋出與調用、負載均衡、REST用戶端Feign、Spring Cloud的保護機制、微服務叢集網關、微服務與消息驅動、叢集配置中心等等,由于篇幅限制小編在這裡隻展示文章的部分大綱及内容。
Spring Cloud與Netlix
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbwxCdh1mcvZ2LcV2Zh1Wa9M3clN2byBXLzN3btg3P3pVdC5GT5VVbORzY6lVNJR1TxEkaN1mWXplMwMkTxkkeNhXQE1Ue4k3YsR2VZRHbyg1aGJjYzJEWkZHOXFWdVhUY6VzVZBHctxkeWJjWoFzVhRXUXlld4d0YxkTeMZTTINGMShUYvwlbj5yZtlmbkN3YuQnclZnbvN2Ztl2Lc9CX6MHc0RHaiojIsJye.jpg)
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的主要子產品
除了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簡介
Ribbon是Netlix下的負載均衡項目,它在叢集中為各個用戶端的通信提供了支援,它主要實作中間層應用程式的負載均衡。Ribbon 提供以下特性:
➢負載均衡器,可支援插拔式的負載均衡規則。
➢對多種協定提供支援,例如HTTP、TCP、 UDP。
➢內建了負載均衡功能的用戶端。
同為Netflix項目,Ribbon可以與Eureka整合使用,Ribbon同樣被內建到Spring Cloud中,作為spring-cloud-netflix項目中的子子產品。Spring Cloud将Ribbon的API進行了封裝,使用者可以使用封裝後的API來實作負載均衡,也可以直接使用Ribbon的原生API。
負載均衡器元件
Ribbon的負載均衡器主要與叢集中的各個伺服器進行通信,負載均衡器需要提供以下基礎功能:
➢維護伺服器的IP、DNS名稱等資訊。
➢根據特定的邏輯在伺服器清單中循環。
為了實作負載均衡的基礎功能,Ribbon 的負載均衡器有以下三大子子產品。
➢Rule: 一一個邏輯元件,這些邏輯将會決定從伺服器清單中傳回哪個伺服器執行個體。
➢Ping:該元件主要使用定時器來確定伺服器網絡可以連接配接。
➢ServerList: 伺服器清單,可以通過靜态的配置确定負載的伺服器,也可以動态指定伺服器清單。如果動态指定伺服器清單,則會有背景的線程來重新整理該清單。
一.Spring Cloud述
二.搭建開發環境
三.微服務釋出與調用