
分布式架构
文章平均质量分 94
水墨之白
悟已往之不谏,知来者之可追!
展开
-
延时任务调度设计
一、延迟队列介绍 延时任务的需求: 生成订单30分钟未支付,则自动取消 生成订单60秒后,给用户发短信 延时任务与定时任务区别: 定时任务有明确的触发时间,比如在某个时刻执行,或者按照某个周期执行,延时任务没有 定时任务一般执行的是批处理操作是多个任务,而延时任务一般是单个任务 二、延时队列设计方案 数据库轮询 比较简单的实现方式。所有的订单一般都会存储在数据库中,通过一个线程定时的去扫...原创 2019-10-15 20:14:16 · 4339 阅读 · 0 评论 -
Redis实现分布式锁
什么是分布式锁? 在分布式环境下,系统被拆分,代码可能会被不同的jvm运行,在单进程的情况下,我们可以使用java语言和本身的类库提供的锁,完成高并发的需求。 常见的分布式锁: Memcached分布式锁 redis分布式锁 Zookeeper分布式锁 Chubby 底层使用了Paxos一致性算法 redis如何实现分布式锁? 三要素: 1.加锁 sentnx命令 setnx...原创 2018-07-18 00:36:00 · 752 阅读 · 0 评论 -
手写RPC框架
一、RPC简介 最近看hadoop底层通信,都是通过RPC实现的。 RPC(Remote Procedure Call Protocol)远程调用: 远程过程调用是一种常用的分布式网络通信协议,它允许运行于 一台计算机的程序调用另一台计算机的子程序,同时将网络的通信细节隐藏起来, 使得用户无须额外地为这个交互作用编程。分布式系统之间的通信大都通过RPC实现 二、RPC请求过程 cl...原创 2019-04-07 14:13:22 · 371 阅读 · 0 评论 -
分布式全局唯一ID生成方法
一、snowflake 算法 twitter 开源的分布式 id 生成算法,使用64 位的 long 型的 id。 41 bit,时间戳,单位为毫秒,2^41 - 1 换算成年可以表示69年的时间 10 bit,其中5个表示机房,5个表示机器ID 12 bit,录同一个毫秒内产生的不同 id,2^12 - 1 = 4096,可以表示同一个毫秒内的 4096 个不同的 id 支持每秒几万并发 pub...原创 2019-05-20 19:08:11 · 437 阅读 · 0 评论 -
分布式事务
一、分布式事务 事务是程序执行的逻辑单元,一组操作要么全部成功,要么全部失败 分布式环境下,对系统进行划分,比如电商项目,会将系统拆分成不同的服务,比如订单服务,积分服务,库存服务,寻源服务等等。 订单生成流程: 修改支付状态为已支付 调用积分服务扣减使用的积分 调用库存服务扣减库存 调用仓储系统生成物流信息 订单生成流程中如果任一步骤失败,由于在该服务之前其它服务已经完成,就会造成数据不一致...原创 2019-05-23 15:20:45 · 160 阅读 · 0 评论