EDEN-MACE 1.6.0 发布,新增分布式锁,保证账务安全性
EDEN-MACE 是一套灵活的管理佣金的分销管理系统,它涵盖并且总结了目前流行的分销模式,并且提供后期完善的账务管理系统,让分销更加简单。
开源地址:https://gitee.com/codingdb/distribution_management
视频教程
链接:https://pan.baidu.com/s/1he3Tnk324JKoMPsbtEPcyw 提取码:p20v
此次更新是通过zookeeper对金额的操作进行分布式加锁,保证了账务的安全性.
如下图,分布式锁利用了zk的临时有序节点实现。
系统在类路径下的zookeeper.properties文件设置了开关,关的情况下是不加锁的,这里只讨论开的情况下,具体的加锁流程如下:
1.首先在 配置文件zookeeper.properties文件中设置zk的相关地址
2.系统在加载的时候会运行一个CuratorFramework并且启动
3.在相关spring组件中增加@AmoutLock注解
4.进入方法请前会根据配置情况判断是否进入加锁流程,进入的话 会通过 curator的InterProcessMutex类
5.创建一个/amount/{userId}的账户,这样能够保证多个用户进入此方法
6.通过lock.acquire()在zk下创建/amount/{userId} 下创建临时有序节点
7.执行账户操作
8.通过lock.release()是否节点,如果有下一个最小的节点,则通过watch机制通知下一个节点进入方法
优点:
1.对账户可以实现分布式的锁定,有利于分布式应用的部署
2.通过对每一个账户的监控保证了程序的健壮性
缺点
1. 由于需要访问zk进行加锁,由于网络原因等,会导致程序运行变慢
2.增加了程序的复杂性
部分代码
if(args!=null&&args.length>0&&curatorFramework!=null){ String path = "/amount/"+args[0]; final InterProcessMutex lock = new InterProcessMutex(curatorFramework,path); try { log.info("金额开始锁表{}",path); lock.acquire(); return point.proceed(); }finally { lock.release(); log.info("金额锁表完成{}",path); } }
具体操作可参照AmountMangeServiceImpl 类的实现和相关注释。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
免费建站系统,Joomla 3.9.12 发布
Joomla 3.9.12现以发布。这是Joomla 3.x系列的安全修复程序版本,解决了一个安全漏洞,并包含30多个错误修复程序和改进。 什么是3.9.12? Joomla 3.9.12包含一个安全漏洞修复程序以及一些错误和改进,包括: 安全问题已修复 低优先级-核心-默认模板徽标参数中的XSS(影响Joomla 3.0.0至3.9.11) 错误修复和改进 在日历中修复minyear和maxyear 在Protostar中处理Google字体的粗细和样式 在mssql服务器上修复用户会话 通过向CLI Finder索引器添加暂停机制来保护SQL Server 修复Imagelist自定义字段默认图像 下载 下载Joomla 3.9.12 完整包 下载Joomla 3.9.12 升级包
- 下一篇
Serverless 1.53.0 发布,无服务器架构开发框架
Serverless 架构开发框架 Serverless Framework 1.53.0 发布了,该框架使用 AWS Lambda、Azure Functions、Google CloudFunctions 等技术,可以构建 Serverless 架构的 Web、移动和 IoT 应用。 新版更新说明如下: 遵从 websocket 日志组中的 logRetentionInDays 删除对 sls 软件包命令中的现有 AWS 配置文件的要求 添加有关使用 captureError 的文档 对 CONTRIBUTING.md 进行较小的更正 [文档] 添加了有关指定 SNS ARN 的说明 修复 aws 插件中的正则表达式转义 更新 Azure 快速入门和 Azure Node.js 项目的README 更新 Azure CLI 参考文档 文档:更新和清理 Hello World 应用程序文档 更新 Azure 提供程序指南文档 更新 Azure Node.js 模板 将通用测试工具移至 @serverless/test 添加测试文档 添加阿里云提供商 更新 package.json 中...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Hadoop3单机部署,实现最简伪集群
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Windows10,CentOS7,CentOS8安装Nodejs环境