Closed richardissuperman closed 7 years ago
庆哥,提问速度真快。。。其实这个分享还没写完,这周还会继续补充。对于你提的两个问题的回答: 1、文中所有提的云主机都是虚拟机,宿主机指的是实实在在的物理机。而这里的虚拟机是一个抽象的概念,既可以是KVM的虚拟机,也可以是docker虚拟机,还可以是物理机(baremental),即美团云现在是一套框架管理了3种类型的“虚拟机”,它们共用一套API,只是接口具体实现不同而已。 2、分布式锁既不是基于tornado架构,也不是使用数据库的加锁机制。其实,简单分析下就知道这两种层次的锁机制是无法实现分布式的:本地锁只能对一个进程下的多个线程有效,对同一台宿主机上的其它进程,或者不同宿主机的进程肯定是不生效的,原因很简单,你在你的进程空间定义的锁,对其它进程是不可见的。所以分布式锁就需要是一个独立的服务,所有控制节点在收到API请求之后就会向分布式锁集群服务请求锁,只有拿到了锁才能进行后面的操作。
ok,我懂了! 所以这个所谓的"分布式锁"也可以是单独一个云主机host的一个服务,每次有API请求是写操作的话就会先向这个云主机的服务拿“锁”,拿不到的就得等待。 是这样吧? 😃
感谢仔仔分享,对这方面虽然陌生但是非常感兴趣!美团在这方面肯定也是有优势, 问一些不专业的问题,希望可以尽量耐心解答,哈哈(同时仔仔也不能泄露太多美团的非开源技术。。。)
谢谢!