🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
* 消息中间件(一)MQ详解及四大MQ比较[https://blog.csdn.net/wqc19920906/article/details/82193316](https://blog.csdn.net/wqc19920906/article/details/82193316) * rabbitMQ、activeMQ、zeroMQ、Kafka、Redis 比较 :[https://www.cnblogs.com/valor-xh/p/6348009.html](https://www.cnblogs.com/valor-xh/p/6348009.html) * * * Zookeeper 分布式锁 当用户A修改订单前,会根据订单号到Zookeeper找对应的值,如果找到了,说明有用户在操作相同订单号的数据, 这时用户A需要等待,如果没有获取到则在Zookeeper中创建订单号为5的节点, 然后在去操作数据库A,把订单5的价格改为20,然后把数据库数据同步到数据库B, 此时如果用户B想操作订单为5的数据,它先去zookeeper判断是否有值,这是肯定有,所有用户B等待,等A操作结束后, 本次会话结束,Zookeeper自动删除此节点,此时B在去操作数据库,这样就实现了分布式锁问题。 修改数据时, 判断有没有改节点,如果没有,就创建一个当前类型的节点,修改数据, 删除节点,结束 如果创建节点失败,就需要等待节点的释放 分布式锁,如果你有多个机器在访问同一个共享资源, 那么这个时候,如果你需要加个锁,让多个分布式的机器在访问共享资源的时候串行起来 那么这个时候,那个锁,多个不同机器上的服务共享的锁,就是分布式锁 分布式锁当然有很多种不同的实现方案,redis分布式锁,zookeeper分布式锁 二阶段提交 ## 分布式锁服务:DistributedLock,根据各自的业务创建分布式锁;