SpringCloud服務間通信方式

2020-12-22 計算機java編程

接下來在整個微服務架構中,我們比較關心的就是服務間的服務該如何調用,有哪些調用方式?

總結:在springcloud中服務間調用方式主要是使用 http restful方式進行服務間調用

1|0 1. 基於RestTemplate的服務調用

在上面的基礎上,使用的是consul註冊,pom.xml文件

1|1 1. 說明

spring框架提供的RestTemplate類可用於在應用中調用rest服務,它簡化了與http服務的通信方式,統一了RESTful的標準,封裝了http連結, 我們只需要傳入url及返回值類型即可。相較於之前常用的HttpClient,RestTemplate是一種更優雅的調用RESTful服務的方式。1|2 2. RestTemplate 服務調用

創建兩個服務並註冊到consul註冊中心中users 代表用戶服務 埠為 9999products 代表商品服務 埠為 9998`注意:這裡服務僅僅用來測試,沒有實際業務意義

1|3 3. 在商品服務中提供服務方法

1|4 4. 在用戶服務中使用restTemplate進行調用

1|5 5.啟動服務

1|6 6.測試服務調用

瀏覽器訪問用戶服務 localhost:9999/user/findAll

1|7 7. 總結

rest Template是直接基於服務地址調用沒有在服務註冊中心獲取服務,也沒有辦法完成服務的負載均衡如果需要實現服務的負載均衡需要自己書寫服務負載均衡策略。restTemplate直接調用存在問題1.直接使用restTemplate方式調用沒有經過服務註冊中心獲取服務地址,代碼寫死不利於維護,當服務宕機時不能高效剔除2.調用服務時沒有負載均衡需要自己實現負載均衡策略2|0 2. 基於Ribbon的服務調用

2|1 0. 說明

官方網址Spring Cloud Ribbon是一個基於HTTP和TCP的客戶端負載均衡工具,它基於Netflix Ribbon實現。通過Spring Cloud的封裝,可以讓我們輕鬆地將面向服務的REST模版請求自動轉換成客戶端負載均衡的服務調用。再創建一個服務類,和上面的服務類一樣,只有埠不同

其他一樣

2|2 1. Ribbon 服務調用

默認的輪訓策略,也就是當前訪問的9998,之後是9997,循環訪問

2|3 2. Ribbon負載均衡策略

ribbon負載均衡算法

RoundRobinRule 輪訓策略 按順序循環選擇 ServerRandomRule 隨機策略 隨機選擇 ServerAvailabilityFilteringRule 可用過濾策略`會先過濾由於多次訪問故障而處於斷路器跳閘狀態的服務,還有並發的連接數量超過閾值的服務,然後對剩餘的服務列表按照輪詢策略進行訪問WeightedResponseTimeRule 響應時間加權策略`根據平均響應的時間計算所有服務的權重,響應時間越快服務權重越大被選中的概率越高,剛啟動時如果統計信息不足,則使用RoundRobinRule策略,等統計信息足夠會切換到RetryRule 重試策略`先按照RoundRobinRule的策略獲取服務,如果獲取失敗則在制定時間內進行重試,獲取可用的服務。BestAviableRule 最低並發策略`會先過濾掉由於多次訪問故障而處於斷路器跳閘狀態的服務,然後選擇一個並發量最小的服務

2|4 3.修改服務的默認負載均衡策略

2|5 4.Ribbon停止維護

相關焦點

  • 從零搭建 Spring Cloud 服務(超詳細)
    --引入springcloud的euekea server依賴--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server
  • 初識Spring Cloud Stream,什麼是消息驅動微服務框架
    spring cloud stream是一個構建與Spring Boot和Spring Integration之上的框架,方便開發人員快速構建基於Message-Driven的系統。Spring Integration & Enterprise Integration Patterns簡介Enterprise Integration Patterns 是由Gregor Hohpe和Bobby Woolf在 Enterprise Integration Patterns 一書中總結的企業應用開發實踐中使用到的各系統間數據交換的方式。
  • springcloud五大組件
    首先我們來看springcloud是什麼?它是微服務架構集大成者,基於springboot構建,可以將一系列優秀組件進行完美整合。對熟悉的程式設計師來說,上手不麻煩,對新手來說,就需要了解springcloud架構再去學習。
  • 4年 46 個版本,一文讀懂 Spring Cloud 發展歷史
    後續 IaasS 廠商對應的 Spring Cloud 項目會移出 Spring Cloud 組織,各自單獨維護(spring-cloud-azure 一直都是單獨維護,spring-cloud-alibaba 孵化在 Spring Cloud 組織,畢業後單獨維護);API 重構,會帶來重大的改變(Spring Cloud Hoxton 版本新增了 Spring Cloud Circuit Breaker
  • 什麼是Spring Cloud項目,我把它講清楚了
    01微服務講起springcloud之前,我們需要了解一下什麼是微服務。簡單來說,微服務就是一種將一個單一應用程式拆分為一組小型服務的方法,拆分完成後,每一個服務都運行在獨立的進程中,服務於服務之間採用輕量級的通信機制來進行溝通(Spring Cloud 中採用基於 HTTP 的 RESTful API)。
  • Spring全家桶、Dubbo、分布式、消息隊列後端必備全套開源項目
    《Spring Cloud Alibaba 服務調用 Dubbo 入門》 對應 labx-07-spring-cloud-alibaba-dubbo《Spring Cloud Alibaba 服務容錯 Sentinel 入門》 對應 labx-04-spring-cloud-alibaba-sentinel
  • 詳解SpringCloud中RabbitMQ消息隊列原理及配置,一篇就夠!
    下單服務系統:用戶使用下單服務後,將下單信息寫入資料庫,下單成功。簡訊服務系統:用戶下單後,將簡訊信息寫入消息隊列,以發送簡訊信息通知用戶交易信息。郵件服務系統:用戶下單後,將郵件信息寫入消息隊列,以發送郵件信息通知用戶交易信息。
  • SpringCloud:分布式微服務架構
    概念微服務是一種架構風格,它是一種將一個單一應用程式開發為一組小型服務的方法,每個服務運行在自己的進程中,服務間通信採用輕量級通信機制(通常採用http)。這些服務圍繞業務能力構建並且可通過全自動部署機制獨立部署,這些服務共用一個最小型的集中式的管理,服務可用不同的語言開發,使用不同的數據存儲技術。特徵每個微服務可獨立運行在自己的進程中。一系列獨立運行的微服務共同構建起整個系統。
  • spring+微服務+jvm+性能調優,前美團架構師直接跪了!這就很nice
    微服務說到微服務,可能最先提到的就是spring,然後就是springcloud或者springboot,然後是容器Docker等組件spring話不多說,直接一張思維導圖奉上spring之後就是springcloud目錄內容除了理論知識的講解之外,還有相應的源碼操作可以進行實踐Docker
  • Spring Cloud系列各子項目在微服務架構中的作用分析
    Springcloud一般用於搭建微服務項目,那麼微服務項目是怎麼工作的呢?Springcloud的幾個子項目分別扮演什麼角色?網關:Spring Cloud Netflix Zuul / Spring Cloud Gateway微服務開發要把一整個系統不同模塊分成不同的服務項目,每個服務都有自己的調用地址埠信息,那麼前端用戶怎麼調用呢?總不能把所有服務的接口地址給前端吧。
  • 手擼rpc框架,並基於spring進行二次註解開發
    客戶端通過網絡傳輸,遠程調用服務端的函數,服務端處理客戶端的調用請求,然後將結果通過網絡傳輸返回客戶端。可以使用下接口的方法(像上面示例一樣,直接使用spring的註解即可),實質是遠程調用實現的方法。:服務端應用,依賴和。
  • SpringCloud:服務配置中心config初步認識
    通過修改配置文件中的參數我們可以創建出不同的服務環境。但這樣做也有一些問題,如:首先,服務拆分越多,配置項也就越多。而一旦有某項服務進行了調整,其他服務也需要相應調整。如果配置項都在每個項目的配置文件中配置,那麼可想而知,只要一有改變,就得改配置文件,重新部署項目。
  • 深入淺出Spring 5,使用Spring 5的反應式WebSocket
    WebSocket是一種眾所周知的協議,它支持客戶端和伺服器之間的全雙工通信,通常用於Web應用程式中,其中客戶端和伺服器需要以高頻率和低延遲交換事件。Spring Framework 5在框架中具有現代化的WebSockets支持,從而為該通信通道添加了響應功能。
  • SpringCloud框架全解析,繼續你的微服務之旅,直達成功彼岸
    Spring Cloud微服務工具包為開發者提供了分布式系統中的配置管理、服務發現、斷路器、智能路由、微代理、控制總線等開發工具包。它的各個項目基於Spring Boot,將Netlix的多個框架進行封裝,並且通過自動配置的方式將這些框架綁定到Spring的環境中,從而簡化了這些框架的使用。
  • 通信行業獵頭的服務標準是什麼?
    我國通信技術在近幾年得到迅速發展,方便我們的生活方式。通信行業的發展需要大量人才的支撐,尤其是中高端人才,企業自招很難找到適合崗位的人才,因而會通過與獵頭公司合作。那麼通信行業獵頭的服務標準是什麼?通信行業獵頭首先要做好對客戶的招聘工作,接收到客戶的招聘要求,前提要做好與客戶的溝通工作,了解客戶的需求,然後通過人才庫、人脈關係、網絡平臺等途徑進行360度尋獵,尋獵到人才後,做好背景調查,輔導職業生涯、面試工作,甄選最合適的數名人選,成功推薦。同時要藉助網際網路平臺發布打響公司品牌從而吸引客戶的注意,爭取在行業排名靠前。
  • 空間通信技術,各國衛星將使用光技術,進行各星球間的通信傳輸
    隨著通信場景的增多,以及人們對數據傳輸速率、信號覆蓋率和時間延遲等技術參數的差異化需求,光通信和空間通信技術逐步發展起來。光通信和空間通信技術具有傳輸速率高、通信容量大、抗電磁幹擾性能強和保密性高等優點,且其通信終端體積小、功耗低、實用性極高,引發各國研究熱潮。
  • SpringCloud微服務架構篇4:深入了解Eureka
    分區容忍性(Partition tolerance):是否允許集群匯中的節點之間無法通信。在任何分布式系統中都不可能同時滿足,最多同時滿足其中兩個,比如涉及數據存儲的場景,數據一致性是要必須的。如Zookeeper就是採用CP原則,任何時刻對Zookeeper的訪問請求都能得到一致的數據結果,同時系統對網絡分割具備容錯性,但是它不能保證每次服務請求的可用性。
  • 海格通信:做好通信服務保障 為疫情防控提供保障
    中證網訊(記者 萬宇)中國證券報記者2月2日從海格通信了解到,面對新型冠狀病毒感染的肺炎疫情,海格通信旗下全資子公司海格怡創積極行動,投入2000餘名工作人員,在全國各地20餘個省、自治區和直轄市做好通信服務保障,為疫情防控指揮調度提供堅強保障和有力支撐。
  • 面試官:你了解spring嗎?spring的兩大核心是什麼?
    創建bean類,並在spring中進行配置交由spring來管理1 <?xml version="1.0" encoding="UTF-8"?IOC獲取對象的方式通過context.getBean()方法獲取bean時,可以通過如下兩種方式獲取:傳入id值傳入class類型通過class方式獲取bean時,如果同一個類配置過多個bean,則在獲取時因為無法確定到底要獲取哪個