Java中有哪些分布式锁?

 

一.分布式锁溯源

分布式锁出现的原因,主要日益流行的分布式系统所需要

下面简单介绍下分布式架构:

1.分布式架构:

就是把所有的功能、模块、业务拆分成不同的子项目,部署在多台不同的服务器上,这些子项目相互协作,共同对外提供服务。

简单来说,就是之前的一个单体应用(后台管理系统),通过拆分,拆分成用户中心、产品中心、客户中心等多个小应用服务,这种把一个大的单体应用项目,拆分成多个小应用项目的方式,就是分布式系统应用

2.分布式和集群区别

集群:
集群就是将相同的程序、功能,部署在两台或多台服务器上,这些服务器对外提供的功能是完全一样的,集群是通过不断横向扩展增加服务器的方式,以提高服务的能力。

分布式:
分布式就是将两个或多个程序、功能分别运行在两台或多台主机服务器上,这些服务器对外提供的功能并不一样,它们通过相互协作最终完成某一个服务或功能。
 

在服务器部署的代码功能完全一样就是集群,代码功能不一样就是分布式

3.分布式锁的出现

 单服务的时候,锁用synchronized,Lock 就能解决事务并发,但是服务拆分之后,每个服务都是单独的机器,无法解决,所以出现了分布式锁

分布式系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机并发控制锁策略失效,为了解决这个问题就需要一种跨JVM的互斥机制来控制共享资源的访问,这就是分布式锁的由来

 

二.分布式锁的实现

1.分布式锁的作用

  • 解决业务层幂等性

  • 解决 MQ 消费端多次接受同一消息

  • 确保串行|隔离级别

  • 多台机器同时执行定时任务

2.常见分布式锁

如何实现分布式锁呢?目前主流的有三种实现方式:

(1)、基于数据库;

(2)、基于redis;

(3)、基于Zookeeper。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海是倒过来的天~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值