springcloud第4季 springcloud-alibaba之openfegin+sentinel整合案例

一? 介紹說明

1.1 說明

1.1.1 消費者8081

1.1.2 openfegin接口

1.1.3 提供者9091

9091微服務滿足:

1 openfegin 配置fallback邏輯,作為統一fallback服務降級處理。

2.sentinel訪問觸發了自定義的限流配置,在注解@sentinelResource里面配置blockhandler方法。

二 實操案例

2.1 consumer案例配置

2.1.1 pom配置

        <!--alibaba-sentinel--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency><!--nacos-config--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- 引入自己定義的api通用包 --><dependency><groupId>com.jurf.ms.api</groupId><artifactId>ms-api-commons</artifactId><version>1.0-SNAPSHOT</version></dependency>

2.1.2 業務代碼

    @Resourceprivate PayFeignSentinelApi payFeignSentinelApi;
//    @Autowired
//   private OpenFeginApi openFeingApi;@GetMapping(value = "/consumer/pay/nacos/get/{orderNo}")public ResultData getPayByOrderNo(@PathVariable("orderNo") String orderNo){return payFeignSentinelApi.getPayByOrderNo(orderNo);//   return openFeingApi.getPayByOrderNo(orderNo);}

2.1.3 配置文件

2.1.4?啟動配置

2.2?openfegin-api的配置

2.2.1 pom文件

    <!--openfeign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--alibaba-sentinel--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>

2.2.2?業務代碼

1.代碼接口: 注意這里要配置成訪問服務的服務名稱,和nacos的服務名一致。

/*** @auther zzyy* @create 2024-01-05 13:05*/
@FeignClient(value = "ms-alibaba-provider9091",contextId = "ms-alibaba-provider9091-1",fallback = PayFeignSentinelApiFallBack.class)
public interface PayFeignSentinelApi
{@GetMapping(value = "/pay/nacos/get/{orderNo}")public ResultData getPayByOrderNo(@PathVariable("orderNo") String orderNo);
}

2.fallback實現類

@Component
public class PayFeignSentinelApiFallBack implements PayFeignSentinelApi
{@Overridepublic ResultData getPayByOrderNo(String orderNo){return ResultData.fail(ReturnCodeEnum.RC500.getCode(),"對方服務宕機或不可用,FallBack服務降級o(╥﹏╥)o");}
}

2.3??提供配置

2.3.1 pom配置

    <!--openfeign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--alibaba-sentinel--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>

2.3.2?業務實現

    //openfeign+sentinel進行服務降級和流量監控的整合處理case@GetMapping(value = "/pay/nacos/get/{orderNo}")@SentinelResource(value = "getPayByOrderNo",blockHandler = "handlerBlockHandler")public ResultData getPayByOrderNo(@PathVariable("orderNo") String orderNo){//模擬從數據庫查詢出數據并賦值給DTOPayDTO payDTO = new PayDTO();payDTO.setId(1024);payDTO.setOrderNo(orderNo);payDTO.setAmount(BigDecimal.valueOf(9.9));payDTO.setPayNo("pay:"+ IdUtil.fastUUID());payDTO.setUserId(1);return ResultData.success("查詢返回值:"+payDTO);}public ResultData handlerBlockHandler(@PathVariable("orderNo") String orderNo, BlockException exception){return ResultData.fail(ReturnCodeEnum.RC500.getCode(),"getPayByOrderNo服務不可用," +"觸發sentinel流控配置規則"+"\t"+"o(╥﹏╥)o");}

2.3.3?配置

2.4? 服務啟動

1.nacos啟動

2.sentinel啟動

3.應用服務啟動

2.5?驗證訪問

1.消費者:?http://localhost:8081/consumer/pay/nacos/get/999

2.提供者:http://localhost:9091/pay/nacos/get/222

3.驗證blockhandler

a) sentinel配置

b)頻繁刷新訪問: 提示sentinel流控規則訪問

?4.驗證fallback

關閉9091服務提供者

再次訪問:提示fallback異常提示。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/35962.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35962.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35962.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于SpringBoot的學生綜合測評系統

你好呀&#xff0c;我是計算機學姐碼農小野&#xff01;如果有相關需求&#xff0c;可以私信聯系我。 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;SpringBoot框架 工具&#xff1a;MyEclipse、Tomcat 系統展示 首頁 系統首頁&#xff0c;提供綜合…

After Effects 2024 mac/win版:創意視效,夢想起航

After Effects 2024是一款引領視效革命的專業軟件&#xff0c;匯聚了創意與技術的精華。作為Adobe推出的全新版本&#xff0c;它以其強大的視頻處理和動畫創作能力&#xff0c;成為從事設計和視頻特技的機構&#xff0c;如電視臺、動畫制作公司、個人后期制作工作室以及多媒體工…

求職產品運營的個人簡歷案例(精選篇)

在求職產品運營的道路上&#xff0c;一份出色的個人簡歷是邁向成功的第一步&#xff0c;但是簡歷怎么寫才最好呢&#xff1f;下面是小編整理的求職產品運營的個人簡歷案例&#xff0c;同時&#xff0c;幻主簡歷網還提供精美簡歷模板下載和簡歷在線制作工具&#xff0c;歡迎大家…

Kivy tutorial 008: More kv language

Kivy tutorial 008: More kv language – Kivy Blog Central themes: Event binding and canvas instructions in kv language 中心主題: 事件綁定 和 kv語言里的畫布結構 This tutorial directly follows on from the previous, so start by retrieving the previous code, …

meizu M10 魅藍 10 mblu10 root 解鎖 安裝LSPosed框架 紫光展銳改串 AT命令 一鍵新機 改機軟件 硬改 改參數

meizu M10 魅藍 10 mblu10 root 解鎖 安裝LSPosed框架 紫光展銳改串 AT命令 一鍵新機 改機軟件 硬改 改參數 ro.system.build.version.release11 ro.system.build.version.release_or_codename11 ro.system.build.version.sdk30 ro.system.custom.versionAndroid_M01 ro.prod…

python目錄樹生成器

代碼如下&#xff1a; import os from colorama import Fore, Style, init from tkinter import Tk, Label, Entry, Button, Text, Scrollbar, RIGHT, Y, END# 初始化 colorama init(autoresetTrue)def print_directory_tree(root_dir, text_widget, indent, lastTrue):"…

NISP國家信息安全水平考試

國家信息安全水平考試(NISP)是中國信息安全測評中心考試、發證&#xff0c;由國家網絡空間安全人才培養基地運營管理&#xff0c;并授權網安世紀科技有限公司為NISP證書管理中心。 中國信息安全測評中心開展國家信息安全水平考試(NISP)考試項目&#xff0c;是為普及信息安全/網…

Sklearn 深入教程

Sklearn 深入教程 Scikit-learn&#xff08;sklearn&#xff09;是Python中功能強大且廣泛使用的機器學習庫。本教程將深入探討sklearn中的高級主題&#xff0c;涵蓋高級數據預處理、高級特征工程、復雜模型調參、高級集成學習、模型持久化與部署等內容。 目錄 高級數據預處…

Python實例:faker生成數據集、文件

原文鏈接&#xff1a;http://www.juzicode.com/python-example-faker-create-data 本文的幾個例子用faker生成數據并用openpyxl生成表格&#xff0c;或者生成csv、xml、圖像文件。 A&#xff09;生成個人數據 #juzicode.com/VX公眾號:juzicode from openpyxl import Workboo…

IOS Swift 從入門到精通:BlurEffect BlendMode stroke

文章目錄 UIBlurEffectBlendModestroke基本用法:描邊樣式:與strokeBorder的區別:組合使用:自定義形狀:UIBlurEffect 在Swift中,實現模糊效果通常是通過UIKit框架中的UIBlurEffect類來完成的,這通常被稱作毛玻璃效果。 **創建UIBlurEffect實例:**選擇一個模糊效果的樣…

探索AudioLM的音頻源識別能力:解鎖聲音的奧秘

&#x1f3b5; 探索AudioLM的音頻源識別能力&#xff1a;解鎖聲音的奧秘 &#x1f50d; 在音頻處理領域&#xff0c;識別不同的音頻源是一項挑戰性任務&#xff0c;涉及到音頻信號處理、模式識別和機器學習等多個領域。AudioLM&#xff0c;作為一個假想的先進的音頻處理模型&a…

docker 安裝MySQL8以上

1.新建目錄 mkdir -p /usr/local/src/mysql80 2.安裝最新mysql # 拉取鏡像 docker pull mysql 3.運行鏡像創建容器&#xff0c;實現數據庫和日志的持久化等命令 docker run \ -p 3380:3306 \ --name mysql80 \ --privilegedtrue \ --restartalways \ -v /usr/local/src/my…

Spring Boot如何實現跨域資源共享(CORS)?

&#x1f345; 作者簡介&#xff1a;哪吒&#xff0c;CSDN2021博客之星亞軍&#x1f3c6;、新星計劃導師?、博客專家&#x1f4aa; &#x1f345; 哪吒多年工作總結&#xff1a;Java學習路線總結&#xff0c;搬磚工逆襲Java架構師 &#x1f345; 技術交流&#xff1a;定期更新…

1.k8s:架構,組件,基礎概念

目錄 一、k8s了解 1.什么是k8s 2.為什么要k8s &#xff08;1&#xff09;部署方式演變 &#xff08;2&#xff09;k8s作用 &#xff08;3&#xff09;Mesos&#xff0c;Swarm&#xff0c;K8S三大平臺對比 二、k8s架構、組件 1.k8s架構 2.k8s基礎組件 3.k8s附加組件 …

5種算法簡單介紹:貪心算法、分治法、回溯法、動態規劃法、最大流算法

1. 貪心算法&#xff08;Greedy Algorithm&#xff09; 定義&#xff1a; 貪心算法是一種在每一步選擇中都采取在當前狀態下最好或最優&#xff08;即最有利&#xff09;的選擇&#xff0c;從而希望導致結果是全局最好或最優的算法。貪心算法并不是對所有問題都能得到整體最優…

【STM32-存儲器映射】

STM32-存儲器映射 ■ STM32F1-4G地址空間分成8個塊■ STM32F1-Block0■ STM32F1-Block1■ STM32F1-Block2■ STM32F1- ■ STM32F1-4G地址空間分成8個塊 ■ STM32F1-Block0 有出廠 BootLoader 就可以使用串口下載程序。如Keil5圖中IROM地址是0x8000000 開始 就是flash地址 ■ S…

使用方法——注意事項及好處

public class MethodDemo01 {public static void main(String[] args) {// 目標&#xff1a;掌握定義方法的完整性&#xff0c;清楚使用方法的好處。// 需求&#xff1a;假如現在有很多程序員都要進行2個整數求和的操作。//1、李工。int rs sun(10,20);System.out.println(&q…

低代碼開發平臺賦能智慧警務管理:創新引領下的安全新篇章

隨著信息技術的飛速發展&#xff0c;智慧警務管理已經成為維護社會治安、保障人民安全的重要手段。在這一背景下&#xff0c;低代碼開發平臺以其高效、靈活、易用的特性&#xff0c;為智慧警務管理注入了新的活力。本文將探討低代碼開發平臺在智慧警務管理中的應用&#xff0c;…

vue-codemirror的簡單使用

功能 代碼編輯器 安裝 命令行&#xff1a;npm install codemirror vue-codemirror --save 單文件引入 import { Codemirror } from vue-codemirror 單文件展示 <codemirrorv-model"localCode"class"code-mirror":placeholder"placeholder&qu…

[vscode] 自定義log快捷生成代碼

1、進入設置頁面&#xff1a;文件>首選項>用戶代碼片段>選擇設置的語言。 2. 關于代碼段顯示位置的調整設置 文件>首選項>設置&#xff0c;搜索代碼段或snippetSuggestions&#xff0c;修改為”top”; 參考&#xff1a; vscode自定義log快捷生成代碼