分布式
文章平均质量分 58
aoxida
这个作者很懒,什么都没留下…
展开
-
Redisson Queue实现
/ POLL_SIZE表示一次拉取多少条消息,不传取1条。RQueue是非阻塞消息队列。原创 2024-07-11 11:45:43 · 142 阅读 · 0 评论 -
聊聊高并发下库存加减那些事儿——“如何实现异步扣减库存”
一般在日常开发中经常会遇到打折促销,秒杀活动,就如拼多多最近的4999抢券买爱疯11促销活动,毕竟谁的钱也不是大风刮来的,有秒杀有促销必定带来大量用户,而这类活动往往支撑着公司重要营销策略,所以保证系统在高并发下不出异常非常关键,这其中棘手的便是如何在高并发下高效的处理库存数据。今天就来聊聊高并发下库存加减那些事儿。 首先我们要明确重要的一点是减库存是需要顺序的,而需要顺序就意味着不能有并发加减库存的操作,为了实现顺序,一般做法都是将多线程强行变为单线程实现同步操作或者所说的顺序,将多线...转载 2022-03-31 18:27:35 · 1709 阅读 · 1 评论 -
雪花算法(SnowFlake)
本文不介绍原理,只介绍优缺点。据国家大气研究中心的查尔斯·奈特称,一般的雪花大约由10^19个水分子组成。在雪花形成过程中,会形成不同的结构分支,所以说大自然中不存在两片完全一样的雪花,每一片雪花都拥有自己漂亮独特的形状。雪花算法表示生成的id如雪花般独一无二。优点在Java中生成的id是long类型的有序整数,相较uuid作为数据库的主键,更易用于索引搜索和排序,对数据库(MySQL B-Tree)友好。 所有id是根据时间递增的,无法根据其计算出业务量,避免被爬虫遍历数据。...原创 2021-07-02 14:57:28 · 1643 阅读 · 0 评论 -
分布式锁
现在面试都会聊聊分布式系统,通常面试官都会从服务框架(Spring Cloud、Dubbo),一路聊到分布式事务、分布式锁、ZooKeeper等知识。今天就来聊聊分布式锁这块的知识,先具体的来看看Redis分布式锁的实现原理。如果在公司里落地生产环境用分布式锁的时候,一定是会用开源类库的,比如Redis分布式锁,一般就是用Redisson框架就好了,非常的简便易用。感兴趣可以去Redisson官网看看如何在项目中引入Redisson的依赖,然后基于Redis实现分布式锁的加锁与释放锁。一段简单的使用转载 2021-04-16 18:16:27 · 17455 阅读 · 4 评论 -
Elastic-Job开发指南
大多数情况下,定时任务我们一般使用quartz开源框架就能满足应用场景。但如果考虑到健壮性等其它一些因素,就需要自己下点工夫,比如:要避免单点故障,至少得部署2个节点吧,但是部署多个节点,又有其它问题,有些数据在某一个时刻只能处理一次,比如 i = i+1 这些无法保证幂等的操作,run多次跟run一次,完全是不同的效果。 对于上面的问题,我曾经自行设计过一个基于zk分布式锁的解决方案: 1、每类定时job,可以分配一个独立的标识(比如:xxx_job) 2、这类job的实例,部署在多个节点上时,每个节.转载 2020-08-20 10:49:30 · 1460 阅读 · 0 评论 -
细说Redis分布式锁
序-碎碎叨叨在家办公的第N周,也不知道笔者工位上的键盘和显示器有没有想我,不知道会不会落灰太严重,被保洁阿姨扔掉了。笔者今天带来一篇关于redis锁的文章连敲带画码出此文,有一些细节,对redis锁不清晰的盆友不妨瞧一瞧。如果是有经验的盆友,挑挑毛病,那笔者是更感谢了~闲话不多,马上发车。正文-开门见山谈起redis锁,下面三个,算是出现最多的高频词汇:...转载 2020-03-30 15:31:12 · 125 阅读 · 0 评论 -
分布式与集群的区别
简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。例如:如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任务需10小时。采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是Hadoop的转载 2015-02-09 22:07:53 · 1878 阅读 · 0 评论