前言:

在经过漫长的技术沉淀,终于又为 .Net 及 .Net Core 的微服务系列框架贡献当中的一个重要组件。

Taurus.DistributedLock is a distributed lock for .net or .net core.【支持:Redis、MemCache、Database、Local、File 五类锁】

1、开源地址:

https://github.com/cyq1162/Taurus.DistributedLock

# Taurus.DistributedLock 分布式锁,使用 .Net Core 示例:


2、以 Nuget 中引入运行包:Taurus.DistributedLock


3、进行编码:

1、引入名称空间:

using Taurus.Plugin.DistributedLock;

2、配置相关项(示例用代码进行配置,也可以在配置文件中配置):

1、Database 锁配置:
DLockConfig.Conn
= "server=.;database=mslog;uid=sa;pwd=123456";//由数据库链接决定启用什么链接 DLockConfig.TableName = "taurus_lock";2、Redis 锁配置:
DLockConfig.RedisServers
= "127.0.0.1:6379";3、MemCache 锁配置:
DLockConfig.MemCacheServers
= "192.168.100.666666:11211";

3、根据需要获得对应锁类型:

var dsLock = DLock.File;//Get File Lock
var dsLock = DLock.Local;//Get Local Lock
var dsLock = DLock.Database;//Get DataBase Lock
var dsLock = DLock.Redis;//Get Redis Lock
var dsLock = DLock.MemCache;//Get MemCache Lock

4、进行锁、并释放锁:

 string key = "myLock";bool isOK = false;try{
isOK
= dsLock.Lock(key, 30000);if(isOK)
{
Console.Write(
"- OK -" +);
}
}
finally{if(isOK)
{
dsLock.UnLock(key);
}
}

更详细使用见开源地址:/demo 运行示例,运行界面:

总结:

分布式锁,最早在是去年,因为前面两个开源框架:
Taurus.DTC 分布式事务框架

Taurus.DTS 分布式任务框架
中需要用到分布式锁。

考虑到
CYQ.Data
ORM框架内部已经实现了分布式缓存(Redis、Memcached),而分布式锁依赖于分布式缓存, 所以花了些时间,集成在
CYQ.Data
框架内部实现了,默认实现时并没有数据库类型。

后来想让Taurus.DistributedLock 分布式锁框架独立,也让 CYQ.Data 单纯一些,分布式锁从 CYQ.Data 版本移除了 。

同时独立的分布式锁框架,增加了数据库类型的锁,数据库类型锁目前支持(Mssql、Mysql、Oracle、Sybase、Postgres、DB2、FireBird、Sqlite、DaMeng(达梦)、KingBaseES(人大金仓))。

标签: none

添加新评论