翼度科技»论坛 编程开发 .net 查看内容

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

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
前言:

在经过漫长的技术沉淀,终于又为 .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、引入名称空间:
  1. using Taurus.Plugin.DistributedLock;
复制代码
2、配置相关项(示例用代码进行配置,也可以在配置文件中配置):
  1. 1、Database 锁配置:
  2.    DLockConfig.Conn = "server=.;database=mslog;uid=sa;pwd=123456";//由数据库链接决定启用什么链接
  3.    DLockConfig.TableName = "taurus_lock";
  4. 2、Redis 锁配置:
  5.   DLockConfig.RedisServers = "127.0.0.1:6379";
  6. 3、MemCache 锁配置:
  7.   DLockConfig.MemCacheServers = "192.168.100.111:11211";
复制代码
3、根据需要获得对应锁类型:
  1. var dsLock = DLock.File;// Get File Lock
  2. var dsLock = DLock.Local;// Get Local Lock
  3. var dsLock = DLock.Database;// Get DataBase Lock
  4. var dsLock = DLock.Redis;// Get Redis Lock
  5. var dsLock = DLock.MemCache;// Get MemCache Lock  
复制代码
4、进行锁、并释放锁:
  1. string key = "myLock";
  2. bool isOK = false;
  3. try
  4. {
  5.      isOK = dsLock.Lock(key, 30000);
  6.      if (isOK)
  7.      {
  8.          Console.Write(" -  OK - " + );
  9.      }
  10. }
  11. finally
  12. {
  13.      if (isOK)
  14.      {
  15.          dsLock.UnLock(key);
  16.      }
  17. }  
复制代码
更详细使用见开源地址:/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(人大金仓))。
 

来源:https://www.cnblogs.com/cyq1162/p/18029306
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
来自手机

举报 回复 使用道具