首页 > 其他分享 >开源:Taurus.DistributedLock 分布式锁框架,支持 .Net 和 .Net Core 双系列版本

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

时间:2024-02-23 13:56:02浏览次数:29  
标签:Core 框架 dsLock DistributedLock Taurus Net 分布式

前言:

在经过漫长的技术沉淀,终于又为 .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(人大金仓))。

 

标签:Core,框架,dsLock,DistributedLock,Taurus,Net,分布式
From: https://www.cnblogs.com/cyq1162/p/18029306

相关文章

  • 9.Polly在NET中的使用,重试、熔断、超时、降级、限流简单用法
    Polly是一个.NET弹性和瞬态故障处理库,允许开发人员以Fluent和线程安全的方式来实现重试、断路、超时、隔离、限流和降级策略。文档: https://gitee.com/hubo/Polly重试(Retry)出现故障自动重试,这个是很常见的场景,如:当发生请求异常、网络错误、服务暂时不可用时,就应该重试。......
  • .Net Core Unit of Work 基于Entity Framework Core 封装的多数据源操作 (MySql版本)
    先说一下UnitofWork是什么:UnitofWork(工作单元)是一种设计模式,通常用于管理数据库事务和持久化操作。它有助于确保数据操作的一致性和完整性,同时减少不必要的数据库操作,提高性能。在软件开发中,UnitofWork模式通常与Repository模式一起使用。下面是UnitofWork模式的......
  • R语言弹性网络Elastic Net正则化惩罚回归模型交叉验证可视化
    原文链接:http://tecdat.cn/?p=26158原文出处:拓端数据部落公众号 弹性网络正则化同时应用L1范数和L2范数正则化来惩罚回归模型中的系数。为了在R中应用弹性网络正则化。在 LASSO回归中,我们为alpha参数设置一个'1'值,并且在岭回归中,我们将'0'值设置为其alpha参数......
  • System.net.Mail only supports explicit SSL
    System.net.Mailsometimesfailstobesentunderthesslsmtpserver.Afterawhile,itseemslikethisistheproblem.Sendingmailusingsystem.net.MailwithSSLwillfail:System.net.NetworkcredentialAcred=NewSystem.net.Networkcredential("M......
  • 中百 NETAPP DS4243 存储故障盘换盘
    netapp存储出现一个故障盘,现更换故障盘。图片是已更换后正常亮灯(实际故障盘是12)首先查看多控制器的磁盘状态A控磁盘状态B控磁盘状态等磁盘确定是FAILED后即可进行换盘拔出对应的故障盘更换新的新盘(更换时建议间隔半分钟)新盘更换后,在通过diskshow-v查看磁盘属于NotOwned,还未被使......
  • 使用nmcli命令配置网卡(NetworkManager)
    配置网络IP地址sudonmcliconnectionmodifyens3ipv6.methoddisabledsudonmcliconnectionmodifyens3ipv4.methodmanualipv4.address192.168.1.6/24ipv4.gateway192.168.1.1ipv4.dns192.168.1.1sudonmcliconnectiondownens3&&sudonmcliconnectio......
  • Visual Studio 2022 .Net 8 启用AOT publish enabled 发布失败
    .Net8NativeAOT的优势: 我使用VisualStudio2022创建了一个面向.NET8的控制台应用程序。我在创建项目时选中了启用本机AOT发布选项。它给出了以下错误: 错误文本:发布遇到错误。发布遇到错误。我们无法确定错误的原因。检查输出日志以获取更多详细信息。诊断......
  • 简单了解HTTP、Websocket和Netty
    前言伴随着网络的快速发展,网络通讯越来越重要,通讯的快捷、安全、方便影响着用户的体验。本文将探讨这些技术的原理、特点以及在实际应用中的应用场景。1.HTTTP(超文本传输协议)HTTP是一种传输超文本的协议,它是现代互联网通信的基础。其特点包括:简单性:HTTP使用简单的请求-响应模......
  • .Net Code Excel 文件导入
    第一步下载NuGetNPOI包///<summary>///将excel文教导入到订单表///</summary>///<paramname="file">excel文件</param>///<returns>:-1;返回导入文件格式不正确</returns>[HttpPost]publicIActionResultUp......
  • EfficientNet环境搭建&网络修改
    引子在深度学习CV领域,最初2012年突破的就是图像分类,发展这么多年,基本上已经没有什么进展了。此篇作为之前EfficientNet挽留过的总结,现在整理下,OK,让我们开始吧。一、EfficientNet安装1、pytorch版本网址:https://github.com/lukemelas/EfficientNet-PyTorch2、pipinstalleffic......