Go必知必会系列:分布式锁与同步

作者:禅与计算机程序设计艺术

1.简介

“分布式系统”这个词汇在我们眼中似乎是高大上、神秘的词汇。如果你是软件开发人员或者架构师,那么你对分布式系统可能不陌生。但是如果你是一个工程师或者技术负责人,你或许对“分布式系统”这个词语有很多误解。我个人认为“分布式系统”是一个广义的概念,它可以定义成一组计算机硬件、软件组件和服务的集合体,这些组件和服务之间通过网络通信协同工作,共同完成某项任务。特别是在微服务架构兴起之后,“分布式系统”也越来越成为一种架构模式。在本文中,我将介绍如何实现分布式锁与同步,也就是实现多个服务之间的数据共享和资源访问控制。当然,还包括一些扩展阅读资料。

2.基本概念术语说明

分布式锁

分布式锁(Distributed Lock)是控制分布式系统之间对共享资源进行独占访问的一种方式。一般来说,为了保证系统的高可用性,需要对关键业务流程进行分布式部署,从而使得不同节点上的服务能够共同协作处理业务请求。在这种情况下,如果不同的服务节点同时对某个资源进行读写操作,就会导致数据不一致的问题。为了避免此类问题发生,引入了分布式锁机制。分布式锁机制允许一个节点获取到锁之后才能对该资源进行操作,其他节点则需要等待获取锁的释放后才能对资源进行操作。

分布式锁的实现主要涉及两类角色:持有者(Holder)和待获取者(Waiting)。只有持有者才有权利对资源进行操作。当某个节点获取到锁之后,他就是持有者,其他节点都是待获取者。待获取者只能进入队列等候,直至锁被释放。在锁被释放之前,所有节点都无法对资源进行操作。

同步机制

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/133385341