日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java使用Semaphore對(duì)單接口進(jìn)行限流

瀏覽:82日期:2022-08-08 18:07:40
目錄一、實(shí)戰(zhàn)說(shuō)明1.1 效果說(shuō)明1.2 核心知識(shí)點(diǎn)二、 環(huán)境搭建三、限流演示3.1 并發(fā)請(qǐng)求工具3.2 效果示例圖一、實(shí)戰(zhàn)說(shuō)明1.1 效果說(shuō)明

本篇主要講如何使用Semaphore對(duì)單接口進(jìn)行限流,例如有如下場(chǎng)景a. A系統(tǒng)的有a接口主要給B系統(tǒng)調(diào)用,現(xiàn)在希望對(duì)B系統(tǒng)進(jìn)行限流,例如處理峰值在100,超過(guò)100的請(qǐng)求快速失敗b. 接口作為總閘入口,希望限制所有外來(lái)訪問(wèn),例如某個(gè)房間只能同時(shí)100個(gè)玩家在線,只有前面的處理完后面的才能繼續(xù)請(qǐng)求c. 其他類型場(chǎng)景,也就是資源固定的情況下需要輪流使用資源的可以采用Semaphore

不適用場(chǎng)景a. 由于是針對(duì)總?cè)肟谶M(jìn)行限流,所以不能根據(jù)IP或者token等進(jìn)行限流,適用場(chǎng)景比較固定b. 后續(xù)的博客中會(huì)介紹如何使用其他的針對(duì)IP/Token級(jí)別的限流,例如AOP+Redis+Lua進(jìn)行限流

優(yōu)點(diǎn)主要有a. 相比針對(duì)IP級(jí)別的限流,Semaphore實(shí)現(xiàn)相對(duì)簡(jiǎn)單,對(duì)上述場(chǎng)景能快速實(shí)現(xiàn)限流效果

實(shí)現(xiàn)難度:3顆星

1.2 核心知識(shí)點(diǎn)

主要使用以下技術(shù)點(diǎn)a. springbootb. juc包中的Semaphore(tryAcquire、release方法)

Semaphore主要說(shuō)明a. Semaphore中可以通過(guò)tryAcquire和acquire獲取到一個(gè)許可證(默認(rèn)),通過(guò)release釋放許可證b. 兩個(gè)獲取許可證的主要區(qū)別就是前者是非阻塞而后者阻塞,如果我們要實(shí)現(xiàn)快速失敗的效果,就必須使用非阻塞獲取許可證方法注意點(diǎn)a. 一定要確保release方法被調(diào)用,例如放到finally中,否則許可證得不到釋放,將會(huì)導(dǎo)致接口被全部陷死,無(wú)法接收請(qǐng)求

二、 環(huán)境搭建

環(huán)境使用idea+spring initializr創(chuàng)建新建springboot web項(xiàng)目

Java使用Semaphore對(duì)單接口進(jìn)行限流

Java使用Semaphore對(duì)單接口進(jìn)行限流

Java使用Semaphore對(duì)單接口進(jìn)行限流

包目錄說(shuō)明

Java使用Semaphore對(duì)單接口進(jìn)行限流

新建SemaphoreController,請(qǐng)求路徑為limita. 注意點(diǎn)已經(jīng)代碼注釋說(shuō)明

package com.codecoord.semaphore.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.concurrent.Semaphore;/** * 限流側(cè)測(cè)試 * * @author tianxincode@163.com * @since 2020-08-06 */@RestControllerpublic class SemaphoreController { /** * 最大信號(hào)量,例如此處3,生成環(huán)境可以做成可配置項(xiàng),通過(guò)注入方式進(jìn)行注入 */ private static final int MAX_SEMAPHORE = 3; /** * Semaphore主限流,全局就行 */ private static final Semaphore SEMAPHORE = new Semaphore(MAX_SEMAPHORE); @RequestMapping('/limit') public String limit() {// 01.使用非阻塞tryAcquire,如果獲取不到就快速返回失敗if (!SEMAPHORE.tryAcquire()) { return '請(qǐng)求頻率超過(guò)限制:' + MAX_SEMAPHORE;}// 02. 如果能進(jìn)入到這里,說(shuō)明一定獲取到了許可證/// todo 可能的參數(shù)校驗(yàn),注意如果參數(shù)校驗(yàn)不通過(guò),一定要調(diào)用release方法/*if (valid(xxx)) { SEMAPHORE.release();}*/try { // 03. 模擬業(yè)務(wù)處理,假如需要1s Thread.sleep(1000); return '業(yè)務(wù)處理成功';} catch (InterruptedException e) { // 錯(cuò)誤處理 return '業(yè)務(wù)處理失敗';} finally { // 04. 一定要釋放,否則導(dǎo)致接口假死無(wú)法處理請(qǐng)求 SEMAPHORE.release();} }}三、限流演示3.1 并發(fā)請(qǐng)求工具

并發(fā)請(qǐng)求將基于apache-jmeter-5.2.1進(jìn)行測(cè)試,jmeter的使用相對(duì)簡(jiǎn)單,請(qǐng)讀者自行百度

此處線程組的線程數(shù)量為10個(gè),真實(shí)環(huán)境中根據(jù)需要調(diào)整配置大小

Java使用Semaphore對(duì)單接口進(jìn)行限流

Java使用Semaphore對(duì)單接口進(jìn)行限流

3.2 效果示例圖

啟動(dòng)測(cè)試,可以看到處理成功的只有三個(gè),剩下7個(gè)全部失敗a. 請(qǐng)求成功

Java使用Semaphore對(duì)單接口進(jìn)行限流

b. 請(qǐng)求失敗

Java使用Semaphore對(duì)單接口進(jìn)行限流

到此這篇關(guān)于Java使用Semaphore對(duì)單接口進(jìn)行限流的文章就介紹到這了,更多相關(guān)Java 單接口限流內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久麻豆视频| 欧美激情福利| 欧美日韩视频免费观看| 国产精品二区不卡| 日韩免费视频| 午夜国产一区二区| 视频一区中文字幕国产| 日韩有码av| 麻豆一区二区三区| www.com.cn成人| 亚洲欧美综合| 蜜臀久久久久久久| 欧美视频二区| 成人午夜毛片| 成人一区而且| 国产日韩综合| 日本伊人午夜精品| 国产调教一区二区三区| 不卡专区在线| 亚洲在线成人| 久久只有精品| 国产在线欧美| 日韩精品国产欧美| 成人午夜网址| 免费精品视频最新在线| 国产精品s色| 999精品色在线播放| 亚洲精品在线二区| 激情国产在线| 国产视频一区欧美| 国产精品密蕾丝视频下载| 亚洲精品88| 老鸭窝毛片一区二区三区| 国产精品宾馆| 亚洲美洲欧洲综合国产一区| 国产精品亚洲欧美日韩一区在线| 另类专区亚洲| 亚洲午夜久久| 91亚洲自偷观看高清| 亚洲一区国产| www.九色在线| 日本91福利区| 黄色成人精品网站| 美女视频黄久久| 2023国产精品久久久精品双| 亚洲精品大片| 群体交乱之放荡娇妻一区二区| 日韩1区2区3区| 丝袜av一区| 国产乱码精品一区二区三区四区| 国产精品av一区二区| 久久不见久久见中文字幕免费| 婷婷色综合网| 福利一区二区三区视频在线观看| 在线精品视频一区| 99久久婷婷这里只有精品| 国产日韩亚洲| 亚洲九九精品| 黄色亚洲大片免费在线观看| 卡一卡二国产精品| 欧美亚洲免费| 国产精品日本欧美一区二区三区| 动漫av一区| 日韩av成人高清| 免费黄网站欧美| 免费久久久久久久久| 99久久精品网| 日韩在线观看不卡| 精品丝袜久久| 国产精品黄色片| 亚洲日韩视频| 久久国产精品久久w女人spa| 成人免费网站www网站高清| 国产精选久久| 亚洲精品系列| 蜜乳av另类精品一区二区| 99久久99视频只有精品| 中文字幕人成乱码在线观看| 久久99精品久久久久久园产越南 | 欧美国产另类| 亚洲精品乱码久久久久久蜜桃麻豆 | 免费黄网站欧美| 好吊视频一区二区三区四区| 麻豆视频在线观看免费网站黄 | 精品国产精品国产偷麻豆| 国产欧美日韩在线观看视频| 天堂av一区| 日韩欧美中文字幕一区二区三区| 亚洲欧美激情诱惑| 免费国产自线拍一欧美视频| 久久国产欧美| 久久美女性网| 91精品国产成人观看| 中文字幕在线高清| 999国产精品999久久久久久| 成人免费网站www网站高清| 人人精品亚洲| 亚洲精品电影| 999久久久免费精品国产| 婷婷激情一区| 国产一区日韩一区| 亚洲综合二区| 亚洲1区在线| 91精品美女| 电影91久久久| 国产一区二区精品福利地址| 国产一区2区| 久久精品卡一| 国产午夜精品一区二区三区欧美 | 性色av一区二区怡红| 在线观看一区| 久久国产精品免费精品3p| 国产精品第一国产精品| 久久久久九九精品影院| 日韩国产一区二区| 欧美午夜精品一区二区三区电影| 国产一区二区三区黄网站| 日韩视频网站在线观看| 国产专区一区| 亚洲毛片一区| 里番精品3d一二三区| 日韩电影二区| 男人的天堂久久精品| 国产伦精品一区二区三区视频 | 91精品丝袜国产高跟在线| 国产欧美高清| 高清av一区| 亚洲精品1区| 日韩成人一级| 欧美香蕉视频| 亚洲视频电影在线| 麻豆国产欧美一区二区三区| 91综合网人人| 亚洲最大av| 日韩av片子| 九九久久电影| 国产女人18毛片水真多18精品| 精品国产不卡| 不卡中文一二三区| 日韩不卡手机在线v区| 国产色播av在线| 中文视频一区| 激情黄产视频在线免费观看| 免费成人在线影院| www.九色在线| 亚洲人成网77777色在线播放| 美女久久99| 丝袜国产日韩另类美女| 久久99久久久精品欧美| 亚洲少妇一区| 日本黄色精品| 亚洲v天堂v手机在线| 日韩精品电影| 欧美综合社区国产| 91九色精品| 国产在线日韩精品| 日本一区二区三区视频在线看| 中文字幕在线视频网站| 亚洲精品乱码日韩| 国产超碰精品| 国产精品亚洲产品| 丝袜美腿成人在线| 亚洲成a人片| 欧美日韩一视频区二区| 久久久人人人| 麻豆视频一区| 一区二区精品| 狠狠色狠狠色综合日日tαg| 卡一精品卡二卡三网站乱码| 视频在线观看91| 国内精品99| 欧美日韩视频免费观看| 国产高清亚洲| 日韩区欧美区| 老司机精品久久| 亚洲国产专区校园欧美| 福利一区和二区| 国产精品综合色区在线观看| 蜜臀久久99精品久久久画质超高清| 黑人精品一区| 精品美女在线视频| 国产调教精品| 日本视频一区二区| 免费中文字幕日韩欧美| 亚洲风情在线资源| 精品中文字幕一区二区三区四区| 在线精品观看| 久久xxxx| 影音先锋久久| 亚洲女同中文字幕| 99久久九九| 日韩综合精品| 毛片在线网站| 国产精品成人a在线观看| 欧美激情视频一区二区三区免费 | 国产精品xxx在线观看| 婷婷成人av| 日韩高清在线不卡| 亚洲毛片在线| 欧美久久一区二区三区|