
分布式
Geffin
欲戴王冠,必承其重
展开
-
分布式系统 ID 生成方案总结
文章目录前言分布式ID的生成特性分布式ID的几种生成办法基于UUID优点缺点适用场景基于数据库主键自增优点缺点适用场景基于数据库多实例主键自增优点缺点适用场景基于类Snowflake算法优点缺点适用场景基于Redis生成办法优点缺点适用场景基于美团的Leaf方案优点缺点双Buffer优点缺点动态调整Step前言一般单机或者单数据库的项目可能规模比较小,适应的场景也比较有限,平台的访问量和业务量都较小,业务ID的生成方式比较原始但是够用,它并没有给这样的系统带来问题和瓶颈,所以这种情况下我们并没有对此给予转载 2020-09-19 16:53:44 · 559 阅读 · 0 评论 -
分布式事务详解
1 引言一般像平时我们在单机上写 demo 时,所有逻辑直接在一个数据库中完成,那么本地事务就可以很简单胜任这份工作。但现在毕竟是微服务架构的时代,一个业务逻辑很可能需要多个服务来完成,而且需要依靠不同的服务操作不同的数据库,由于本地事务不能跨库操作,很显然是无法适合这样的场景的。可以跨库的事务属于分布式事务。所谓分布式事务,便是把分布式系统中两个相关操作看成是一个单元,比如创建订单和修改库存...原创 2020-01-14 00:16:27 · 1804 阅读 · 2 评论 -
一致性哈希算法详解
前言最近学习一致性哈希算法时,在网络上看到一位大神的文章 一致性哈希(hash)算法 惊为天人,故在前人的基础上完成本篇文章。1 问题导入相信大家日常的开发都离不开 Redis 以及数据库吧,为了提高 Redis 的性能,我们要么实行主从复制,要么搭建集群,读写分离;为了提高数据库的性能,在数据量到达一定程度之后,我们对其进行分库分表操作。在分布式系统中,由于我们部署的是集群,那么,我们应...原创 2019-11-16 00:14:09 · 508 阅读 · 1 评论 -
分布式锁的实现方式
1 前言导入在单机应用中,如果需要对一个共享变量进行多线程同步访问,那么使用我们之前所学的 Java 多线程知识即可。但是随着业务的发展,渐渐从单机演变成了集群,一个应用可能被部署到几台机器上,我们原来的那一套可就不灵了。究其原因,是因为在单机上,共享变量是唯一的,存储在单机的 JVM 内部的一块独立的内存空间。而在集群中,该共享变量可能存储在集群每台机器的 JVM 上。在高并发环境下,多个请求...原创 2019-11-15 00:34:40 · 366 阅读 · 0 评论