7

开源:Taurus.DistributedLock 分布式锁框架,支持 .Net 和 .Net Core 双系列版本 -...

 6 months ago
source link: https://www.cnblogs.com/cyq1162/p/18029306
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在经过漫长的技术沉淀,终于又为 .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

68747470733a2f2f696d67323032342e636e626c6f67732e636f6d2f626c6f672f31373430382f3230323430312f31373430382d32303234303132373230323233323739312d323030333534363931322e706e67

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.111: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(人大金仓))。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK