前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于redis的Quarkus分布式锁框架扩展开源了(21)

基于redis的Quarkus分布式锁框架扩展开源了(21)

作者头像
kl博主
发布2023-11-18 13:18:11
1840
发布2023-11-18 13:18:11
举报
文章被收录于专栏:kl的专栏

前言

类似的分布式锁框架封装,之前写过spring boot版本的,这次的quarkus版本从功能上来说没啥区别,都是以注解的方式驱动的,提供了分布式锁,以及业务key粒度的锁定。

Quarkus技术交流QQ群:871808563 spring boot版本:https://github.com/kekingcn/spring-boot-klock-starter 项目地址:https://github.com/kekingcn/quarkus-redis-klock 快速集成

1、添加依赖

代码语言:javascript
复制
        <dependency>
            <groupId>org.github.keking</groupId>
            <artifactId>quarkus-redis-klock-ext</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

2、添加配置

代码语言:javascript
复制
quarkus.klock=true
quarkus.klock.redis.database=12
quarkus.klock.redis.password=sasa
quarkus.klock.redis.address=redis://192.168.1.204:6379

默认情况下,klock扩展开关是关闭的,您需要使用[quarkus.klock = true]配置手动将其打开。

使用方式

代码语言:javascript
复制
@Singleton
public class ServiceA {

    @Klock
    public String hello( @KlockKey String name, @KlockKey(fieldName = "name") User user){
        return "hello " + name;
    }
}

如上代码示例,klock分布式锁quarkus扩展以添加注解的方式驱动,@klock表示给这个方法加上了一把分布式锁,锁的名称为:(默认:全类名+方法名,通过name属性指定)+指定的业务Key。使用@KlockKey注解标注锁定的业务key,尽量将锁的力度减小同时满足业务需求。如果入参是对象,可以用fieldName指定获取对象中的某个属性值作为业务Key,如上代表使用user对象里的name属性值作为业务Key。相同的业务Key就会上锁,不同的业务key就放行

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档