久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

springboot利用redis、Redisson處理并發問題的操作

瀏覽:2日期:2023-03-03 16:43:51
一、引入問題

在工作中,遇到的接口基本都是長這樣的:

如下為一個庫存扣減的接口。從redis中獲取庫存數量,然后扣減一個數量

springboot利用redis、Redisson處理并發問題的操作

問題這個接口在并發的情況下是有問題,可以用jmeter測試一下(用postman壓力測試了一下,沒有測出并發問題。網上有的博客說postman沒法測試并發)

jmeter設置:100個并發

springboot利用redis、Redisson處理并發問題的操作

打印結果:

springboot利用redis、Redisson處理并發問題的操作

問題很嚴重呀

解決方案,優化如下:

springboot利用redis、Redisson處理并發問題的操作

jmeter設置:101個并發,stock=100,則正確結果是應該會出現一次“扣減失敗,庫存不足”

打印如下,沒毛病

springboot利用redis、Redisson處理并發問題的操作

二、如上只是單應用的情況,那如果是集群呢,結果會是怎么樣?1、nginx配置

springboot利用redis、Redisson處理并發問題的操作

2、修改本地hosts文件

c:windowssystem32driversetc

springboot利用redis、Redisson處理并發問題的操作

springboot利用redis、Redisson處理并發問題的操作

3、利用idea啟動兩個應用,端口號分別為8080,8090,idea記得修改啟動配置

springboot利用redis、Redisson處理并發問題的操作

jmeter測試:

springboot利用redis、Redisson處理并發問題的操作

兩個應用的后臺打印:從日志來看,synchronized沒有起到作用。畢竟synchronized是JVM級別的,沒法對集群的情況進行加鎖

springboot利用redis、Redisson處理并發問題的操作

springboot利用redis、Redisson處理并發問題的操作

解決方案:引入今天的大佬,分布式鎖:Redisson

代碼優化如下:

springboot利用redis、Redisson處理并發問題的操作

jmeter測試:101個線程,庫存數量100

springboot利用redis、Redisson處理并發問題的操作

后臺打印:

springboot利用redis、Redisson處理并發問題的操作

springboot利用redis、Redisson處理并發問題的操作

springboot利用redis、Redisson處理并發問題的操作

出現了一次扣減失敗的情況,運行正常

注意點:注意引入redisson比較新的版本,避免出現一些遠程連接斷絕的一些問題

源碼地址:https://github.com/windyNaruto9833/redis

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 皮山县| 芒康县| 班戈县| 岳普湖县| 安乡县| 电白县| 武陟县| 正镶白旗| 海门市| 特克斯县| 富源县| 兴和县| 田东县| 兴安盟| 开化县| 安宁市| 寻甸| 灌云县| 长汀县| 盈江县| 晋城| 兰西县| 东乌珠穆沁旗| 盐津县| 阳东县| 乃东县| 雷波县| 砚山县| 无棣县| 泌阳县| 泗洪县| 祁门县| 晋城| 修文县| 济南市| 交口县| 永川市| 宁阳县| 印江| 抚顺市| 桓台县|