聊一聊分布式锁的设计模型
一、什么是分布式锁?什么是分布式锁?对于这个问题,相信很多同学是既熟悉又陌生。随着分布式系统的快速发展与广泛应用,针对共享资源的互斥访问也成为了很多业务必须要面对的需求,这个场景下人们通常会引入分布式锁来解决问题。我们通常会使用怎么样的分布锁服务呢?有开源的MySQL,Redis,ZooKeeper
1.4 w字,25 张图让你彻底掌握分布式事务原理
本文提纲如下0.前言1.单数据源事务&多数据源事务2.常见分布式事务解决方案2.1.分布式事务模型2.2.二将军问题和幂等性2.3.两阶段提交(2PC)&三阶段提交(3PC)方案2.4.TCC方案2.5.事务状态表方案2.6.基于消息中间件的终一致性事务方案3.SeatainATm
分布式存储在B站的应用实践
分享嘉宾:林堂辉哔哩哔哩开发工程师编辑整理:张振飞神州新桥出品平台:DataFunTalk导读:业务高速发展,B站的存储系统如何演进以支撑指数增长的流量洪峰?随着流量进一步暴增,如何设计一套稳定可靠易拓展的系统,来满足未来进一步增长的业务诉求?同时,面对更高的可用性诉求,KV是如何通过异地多活为
深入理解美团 Leaf 发号器开源方案
大家好,我是树哥。之前我们有聊过「如何设计一个分布式ID发号器」,其中有讲过4种解决方案,分别是:UUID类雪花算法数据库自增主键Redis原子自增美团以第2、3种解决方案为基础,开发出了分布式ID生成方案Leaf,并将其开源。我们可以在GitHub上获取到该项目的源码,以及相关的文档说明,项目地址
百度工程师教你玩转设计模式(工厂模式)
作者|北极星小组想要写好代码,设计模式(DesignPattern)是必不可少的基本功,设计模式是对面向对象设计(ObjectOrientedDesign)中反复出现的问题的解决方案,本篇介绍工厂模式(FactoryPattern)。工厂模式属于创建型模式(BuilderPattern),提供了创建
嵌入式代码如何进行重构?
具体的重构手段可参考《代码大全2》或《重构:改善既有代码的设计》,本文不再班门弄斧,而侧重重构时一些粗浅的“方法论”,旨在提高重构效率。作者未采用重量级的重构
你还不明白如何解决分布式Session?看这篇就够了!
平常做的项目都是在一台应用系统,并且所有的操作都在一台Tomcat服务器上,并不会引发Session共享的问题,所以并不会对我们的系统产生影响,但是当我们部署多个微服务的时候,再搭配Nginx进行负载均衡时,如果不处理分布式Session问题,我们在系统中访问不同功能时就会频繁出现用户登录的操作。图
浅谈几种常见的分布式ID
在分布式环境下,如何对某对象做唯一标识是个很常规的问题。本文讨论几种常见做法,供大家参考。1.UUIDUUID是可以生成时间、空间上都独一无二的值,其本质是随机+规则组合而成的。即使在两个独立的服务器上生成UUID,其预期值也是不同的。以MySQL为例,说明下UUID。❖格式在MySQL中,UUID
Kafka is Database
对Kafka为什么适合数据库开发,做了一个简单的分析
BunnyRedis是什么?
介绍BunnyRedis系统
一个优化etcd(Raft)的方法
针对etcd(也就是Raft的一种实现),进行了一个特别优化
单线程就比多线程性能差吗?不一定
比较软件开发中单线程和多线程的内部速度
内存、网络、磁盘性能比较
分析这三个物质的性能特性
分布式思考:最好不要用CAP去分析问题
分析和证明CAP的不足
用Half Linearizability去破解线性一致性(Linearizability)的性能瓶
如何优化一个线性一致性的系统
什么是线性一致性Linearizability
用理论和例子分析了线性一致性
从Raft角度看Half Master/Master(两层解耦)
对Half Master Master模式的深刻剖析
作为数据的Log和WAL的本质区分
对Log和WAL的作用的区分
Kafka模式对比纯Raft模式简表
两种模式的对照表
分布式思考:我们需要分片Shard(含分库分表)吗?
对分布式中Shard使用的深入思考