開源:Taurus.DistributedLock 分佈式鎖框架,支持 .Net 和 .Net Core 雙系列版本

前言:

在經過漫長的技術沉澱,終於又爲 .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.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(人大金倉))。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章