微服務專案之戰 微服務間的呼叫

2022-04-01 14:44:33 字數 2362 閱讀 5021

微服務呼叫介紹,微服務之間的呼叫

一,springcloud微服務之間呼叫的方式有那些?

在springcloud中實現微服務呼叫的方式有ribbon、feign兩種,他們實現軟負載均衡呼叫。

ribbon是乙個基於 http 和 tcp 客戶端 的負載均衡的工具。可以在客戶端配置 ribbonserverlist(服務端列表),使用 httpclient 或 resttemplate 模擬http請求。feign預設整合了ribbon,是在 ribbon的基礎上進行了一次改進,使用起來更加方便。採用介面的方式, 只需要建立乙個介面,然後在上面新增註解即可 ,將需要呼叫的其他服務的方法定義成抽象方法即可, 不需要自己構建http請求。

1,ribbon呼叫服務實現

這裡我拿custmer作為服務提供者,order作為服務呼叫(消費者)方。當呼叫order模組的介面時,需要從customer獲取對應的資訊。

1),呼叫者(order-service)啟動類更改。

2),服務提供者(customer-service)介面提供

3),服務呼叫實現

2,feign呼叫服務實現

feign屬於springcloud中常用的服務呼叫方式。feign呼叫啟動類不需要@bean和@loadbalanced註解部分。服務呼叫者啟動類如下:

1),新增提供者介面

2),在消費端新增feignclient介面服務

在整合hystrix前fallback可以不配,我這裡配的fallback類如下:

3),服務呼叫實現

二,實際專案中feign和ribbon怎麼選擇?

在實際專案中,到底用feign還是ribbon實現呼叫呢?這個只要掌握區別的你就清楚了。答案肯定是選擇feign

理由:feign預設整合了ribbon,寫起來更加思路清晰和方便。它還採用註解方式進行配置,配置熔斷等方式方便。

三,什麼是hystrix,它能幹什麼?

在分布式環境中,有很多微服務的情況下,不可避免會有一些服務依賴項失敗。hystrix是乙個庫,通過新增延遲容忍和容錯邏輯,幫助您控制這些分布式服務之間的互動。hystrix通過隔離服務之間的訪問點、停止跨服務的級聯故障並提供回退選項來實現這一點,所有這些都可以提高系統的總體彈性。它的作用:

四,feign中如何使用熔斷器hystrix

feign在整合到spring cloud時已經自帶了hystrix模組,所以pom.xml中不需要額外引入feign依賴。現在服務呼叫者(order-service)裡開啟熔斷。

feignclient服務:

熔斷的fallback:

提供服務介面:

測試controller:

啟動服務測試:

服務正常,能從提供者服務中獲取資訊。

那我們在測試下熔斷的效果,在修改提供者介面如下:

重啟提供者服務,然後測試:

此刻,我們發現沒有獲取提供者資訊。看看呼叫者服務日誌

**至該部落格   

微服務專案架構技術

1.eureka作為註冊中心,實現服務治理 2.管理統一服務入口管理 zuul閘道器 3.http協議 fegin客戶端 ribbon本地負載均衡 4.hystrix服務保護框架 熔斷 降級 隔離 限流 5.微服務訊息匯流排stream rabbitmq和kafka 6.服務追蹤與呼叫鏈關係sleu...

基於Docker部署微服務專案

docker 是乙個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到乙個可移植的映象中,然後發布到任何流行的 linux或windows 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。乙個完整的docker有以下幾個部分組成 1.dockerclient客戶端 ...

微服務 1 建立web api介面服務專案

環境結果配置 vs2019 netcore3.1 1.新建專案 開啟vs 新建專案asp.net.core web應用程式 選擇api 建立 2.建立開啟預設介面控制器 可跳過該步驟 新建控制器homecontroller route apicontroller public class homec...