「SpringCloud」(三十九)使用分布式锁实现微服务重复请求控制

  通常我们可以在前端通过防抖和节流来解决短时间内请求重复提交的问题,如果因网络问题、Nginx重试机制、微服务Feign重试机制或者用户故意绕过前端防抖和节流设置,直接频繁发起请求,都会导致系统防重请求失败,甚至导致后台产生多条重复记录,此时我们需要考虑在后台增加防重设置。
  考虑到微服务分布式的场景,这里通过使用Redisson分布式锁+自定义注解+AOP的方式来实现后台防止重复请求的功能,基本实现思路:通过在需要防重的接口添加自定义防重注解,设置防重参数,通过AOP拦截请求参数,根据注解配置,生成分布式锁的Key,并设置有效时间。每次请求访问时,都会尝试获取锁,如果获取到,则执行,如果获取不到,那么说明请求在设置的重复请求间隔内,返回请勿频繁请求提示信息。

相关引用:
1、防重配置项及通过SpringExpression获取相应参数:https://www.jianshu.com/p/77895a822237
2、Redisson分布式锁及相关工具类:https://blog.csdn.net/wsh_ningjing/article/details/115326052

GitEgg: GitEgg 是一款开源免费的企业级微服务应用开发框架,旨在整合目前主流稳定的开源技术框架,集成常用的最佳项目解决方案,实现可直接使用的微服务快速开发框架。

GitHub - wmz1930/GitEgg: GitEgg 是一款开源免费的企业级微服务应用开发框架,旨在整合目前主流稳定的开源技术框架,集成常用的最佳项目解决方案,实现可直接使用的微服务快速开发框架。



  • springcloud鏄粈涔
    绛旓細SpringCloud 鏄竴绉嶅熀浜嶴pring妗嗘灦鐨勫垎甯冨紡绯荤粺瑙e喅鏂规銆傚畠涓哄紑鍙戜汉鍛樻彁渚涗簡涓绉嶅揩閫熸瀯寤哄垎甯冨紡鍜屽井鏈嶅姟鏋舵瀯搴旂敤绋嬪簭鐨勫伐鍏烽泦銆傞氳繃闆嗘垚澶氫釜缁勪欢锛孲pringCloud绠鍖栦簡寮鍙戣繃绋嬩腑鐨勫鏉傛э紝骞舵敮鎸佹瀯寤哄彲闈犮佹槗浜庣淮鎶ゅ拰鍙墿灞曠殑寰湇鍔″簲鐢ㄧ▼搴忋備互涓嬫槸鍏充簬SpringCloud鐨 涓銆佸畾涔夊強涓昏鍔熻兘 SpringCloud鏄竴涓熀浜嶴prin...
  • springcloud鏄粈涔
    绛旓細SpringCloud鍏ラ棬绠杩1銆丼pringCloud鏄熀浜嶴pringBoot瀹炵幇鐨勫井鏈嶅姟妗嗘灦锛屼负寮鍙戜汉鍛樻彁渚涗簡寰堝蹇熸瀯寤哄垎甯冨紡绯荤粺涓父瑙佹ā寮忕殑宸ュ叿锛屽寘鎷厤缃鐞嗐佹湇鍔″彂鐜般佹柇璺櫒銆佹櫤鑳借矾鐢便佸井浠g悊锛屾帶鍒舵荤嚎绛夈2銆丼pringCloud鏄熀浜嶴pringBoot鍩虹涔嬩笂寮鍙戠殑寰湇鍔℃鏋讹紝SpringCloud鏄竴濂楃洰鍓嶉潪甯稿畬鏁寸殑寰湇鍔¤В鍐虫柟妗堟鏋讹紝鍏跺唴...
  • 浣犳墍鐞嗚В鐨SpringCloud鏄粈涔?
    绛旓細1銆SpringCloud鏄疨ivotal鎻愪緵鐨勭敤浜庣畝鍖栧垎甯冨紡绯荤粺鏋勫缓鐨勫伐鍏烽泦銆係pringCloud寮曞叆浜嗕簯骞冲彴杩炴帴鍣紙CloudConnector锛夊拰鏈嶅姟杩炴帴鍣紙ServiceConnector锛夌殑姒傚康銆2銆丼pringCloud鏄熀浜嶴pringBoot鍩虹涔嬩笂寮鍙戠殑寰湇鍔℃鏋讹紝SpringCloud鏄竴濂楃洰鍓嶉潪甯稿畬鏁寸殑寰湇鍔¤В鍐虫柟妗堟鏋讹紝鍏跺唴瀹瑰寘鍚湇鍔℃不鐞嗐佹敞鍐屼腑蹇冦侀厤缃鐞嗐佹柇璺...
  • 濡備綍浣跨敤Spring Cloud
    绛旓細Spring Cloud Bus涓烘垜浠殑搴旂敤绋嬪簭甯︽潵浜嗘洿澶氱鐞嗙鐐广傚湪鍥句簩涓紝鎴戜滑鍙互鐪嬪埌涓涓潰鍚慻reeting灞炴х殑鍊艰鍙戦佽嚦Git褰撲腑锛岃屽悗涓鏉¤姹傝鍙戦佽嚦搴旂敤A涓殑/bus/refresh绔偣銆傝璇锋眰浼氳Е鍙戜互涓嬩笁涓簨浠讹細 搴旂敤A浠嶤onfig Server澶勮姹傝幏鍙栨渶鏂扮増鏈殑閰嶇疆鍐呭銆備换鎰忔敞鏄庝簡@RefreshScope鐨凷pring Bean閮戒細琚噸鏂板垵濮...
  • 濡備綍瀛︿範spring cloud
    绛旓細涓銆Spring cloud鏄粈涔堬紵鐩镐俊澶у鍦ㄧ湅鍒癱loud杩欎釜鍗曡瘝鏃堕鍏堟兂鍒扮殑渚挎槸鈥滀簯鈥濇垨鈥滀簯璁$畻鈥濓紝鍏跺疄杩欓噷骞朵笉鏄繖涓剰鎬濓紝Spring cloud鏄互Spring boot涓哄熀纭鐨勫揩閫熸瀯寤哄垎甯冨紡绯荤粺鐨勫伐鍏烽泦銆傚畠鏁村悎浜嗗悇绉嶅悇鏍风殑宸ュ叿锛屼互鏂逛究鎴戜滑寮鍙戙傜敱浜庡畠鏄湪Spring boot鐨勫熀纭涓婃瀯寤虹殑锛屽洜姝pring cloud鎷ユ湁Spring boot鎵...
  • SpringCloud
    绛旓細SpringCloud 鐨勭壒鐐癸細1绾﹀畾浼樹簬閰嶇疆 2寮绠卞嵆鐢ㄣ佸揩閫熷惎鍔 3閫傜敤浜庡悇绉嶇幆澧 4杞婚噺绾х殑缁勪欢,姣斿 鏈嶅姟鍙戠幇缁勪欢 Eureka  ribbon  zuul 5缁勪欢鐨勬敮鎸佸緢涓板瘜锛屽姛鑳藉緢榻愬叏 鍖呭惈:閰嶇疆涓績,娉ㄥ唽涓績,鏅鸿兘璺敱 6閫夊瀷涓珛 姣斿鏈嶅姟鍙戠幇缁勪欢,涓嶉檺鍒跺繀椤讳娇鐢ㄦ煇涓绉,渚嬪 Eureka,Zookeeper,Consul Eureka...
  • springcloud鏈夊摢浜涗富浠
    绛旓細2. 璐熻浇鍧囪 锛圧ibbon锛夛細Ribbon鏄竴涓熀浜嶩TTP鍜孴CP鐨勫鎴风璐熻浇鍧囪 宸ュ叿銆傚畠鍦Spring Cloud涓敤浜庢湇鍔$殑瀹㈡埛绔礋杞藉潎琛★紝鍙互寰堝ソ鍦伴厤鍚圗ureka浣跨敤锛屽疄鐜版湇鍔$殑鑷姩鍙戠幇鍜岃礋杞藉潎琛°3. 鏈嶅姟璋冪敤锛團eign锛夛細Feign鏄竴涓0鏄庡紡鐨刉eb Service瀹㈡埛绔紝瀹冧娇寰楃紪鍐橦TTP瀹㈡埛绔彉寰楁洿绠鍗曘傛垜浠彧闇瑕佷娇鐢‵eign鏉ュ垱寤...
  • springcloud鏈夊摢浜涚粍浠
    绛旓細spring cloud缁勪欢濡備笅锛1銆丯etflix Eureka锛氭湇鍔℃敞鍐屼腑蹇冦2銆丯etflix Ribbon锛氬鎴风璐熻浇鍧囪 銆3銆丱pen Feign锛氬0鏄庡紡鐨凥TTP瀹㈡埛绔4銆丯etflix Hystrix锛氭柇璺櫒妯″紡銆5銆Spring Cloud Gateway锛氱綉鍏宠矾鐢便6銆丼pring Cloud Sleuth锛氬垎甯冨紡閾捐矾杩借釜銆7銆SpringCloudConfig锛氶厤缃腑蹇冦8銆丼pring Cloud Bus锛...
  • springcloud缃戝叧鐨勫父瑙佸姛鑳
    绛旓細Spring Cloud缃戝叧鐨勫父瑙佸姛鑳藉寘鎷矾鐢便佽繃婊ゅ櫒銆佽礋杞藉潎琛″拰鏈嶅姟鍙戠幇銆1. 璺敱锛歋pring Cloud缃戝叧浣滀负寰湇鍔℃灦鏋勭殑鍏ュ彛锛屾渶閲嶈鐨勫姛鑳戒箣涓灏辨槸璺敱銆傚畠璐熻矗灏嗘潵鑷鎴风鐨勮姹傝矾鐢卞埌鐩稿簲鐨勬湇鍔°傞氳繃浣跨敤璺敱瑙勫垯锛岀綉鍏冲彲浠ュ皢璇锋眰鏄犲皠鍒颁笉鍚岀殑寰湇鍔′笂銆備緥濡傦紝鏍规嵁璇锋眰鐨勮矾寰勬垨璇锋眰澶翠腑鐨勪俊鎭紝缃戝叧鍙互鍒ゆ柇灏嗚姹...
  • SpringCloud寰湇鍔$粍浠朵粙缁
    绛旓細Spring Cloud鏄竴绯诲垪妗嗘灦鐨勬湁搴忛泦鍚堬紙妗嗘灦闆嗭級锛屼粬鍒╃敤Spring Boot鐨勫紑鍙戜究鍒╂у阀濡欑殑绠鍖栦簡鍒嗗竷寮忕郴缁熷熀纭璁炬柦鐨勫紑鍙戯紝濡傛湇鍔″彂鐜版敞鍐屻侀厤缃腑蹇冦佹秷鎭荤嚎銆佽礋杞藉潎琛°佹柇璺櫒銆佹暟鎹洃鎺х瓑銆SpringCloud鍒╃敤SpringBoot鐨勫紑鍙戜究鍒╂у阀濡欏湴绠鍖栦簡鍒嗗竷寮忕郴缁熷熀纭璁炬柦鐨勫紑鍙戯紝SpringCloud涓哄紑鍙戜汉鍛樻彁渚涗簡蹇熸瀯寤...
  • 扩展阅读:www.sony.com.cn ... spring alibaba ... springcloud feign ... springcloud dubbo ... paperpass免费入口 ... spring cloud security ... kafka zookeeper ... spring mvc ... spring是什么意思 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网