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