微服務項目之戰-微服務間的調用


微服務調用介紹,微服務之間的調用

一,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:

啟動服務測試:

 

 

服務正常,能從提供者服務中獲取信息。

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

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

 

 

此刻,我們發現沒有獲取提供者信息。看看調用者服務日志

轉載至該博客  https://www.cnblogs.com/lyn20141231/p/12761409.html 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM