我是靠谱客的博主 怕孤单天空,最近开发中收集的这篇文章主要介绍用java实现etcd分布式锁_etcd实现分布式锁分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

分布式锁简介

在单机情况下,锁的环境比较简单,因为都是在单机的环境里。

而在分布式情况下,多机环境里。由原来的单机系统变成了分布式系统。分布式系统的多线程、多进程分布在不同的机器上,在加上网络这个因素,要控制一个共享资源的使用就复杂得多。比如,网络超时怎么办?网络不可用怎么办?发生死锁怎么办? 等等... ... 一系列问题。

在分布式情况下,需要设计一种分布式锁,来解决这些问题。

分布式锁问题和特性

设想一下,如果是你来设计一个分布式锁,你会怎样考虑?锁应该具有哪些特性?获取锁过程中会出现什么问题?要解决哪些问题?

经过长时间google后,一般会出现下面这些主要问题:

死锁:什么是死锁?就是资源抢占的各方,彼此都在等待对方释放资源,以便自己能获取系统资源,但是没有哪一方退出,这时候就死锁了

惊群效应:多线程/多进程等待同一个socket事件,当这个事件发生时,这些线程/进程被同时唤醒,就是惊群

脑裂:当集群中出现 脑裂 的时候,往往会出现多个 master 的情况,这样数据的一致性会无法得到保障,从而导致整个服务无法正常运行

下面这些特性的:

高可用:也就是可靠性。组成集群的分布式锁系统,某一台机器锁不能提供服务了,其他机器仍然可以提供锁服务。

互斥性:就像单机系统的锁特性一样具有互斥性。不过分布式系统是由多个机器节点组成的。如果有一个节点获取了锁࿰

最后

以上就是怕孤单天空为你收集整理的用java实现etcd分布式锁_etcd实现分布式锁分析的全部内容,希望文章能够帮你解决用java实现etcd分布式锁_etcd实现分布式锁分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部