异步处理框架
文章平均质量分 87
不能说的秘密go
求知若饥,虚心若愚
展开
-
最终一致分布式事务方案解析
在微服务架构中,随着服务的逐步拆分,数据库私有已经成为共识,这也导致所面临的分布式事务问题成为微服务落地过程中一个非常难以逾越的障碍,但是目前尚没有一个完整通用的解决方案。为了保证分布式事务一致性目前业内成熟的解决方案之一为最终一致分布式事务方案原创 2023-02-02 12:15:50 · 481 阅读 · 0 评论 -
高性能的异步处理框架Disruptor(五)——Disruptor2.0的应用
前文讲了那么多理论,原理。现在通过实际的代码,来看看Disruptor2.0的几种实际应用代码。 Event事件定义: /** * Event,RingBuffer的数据 * @author wangxi * @date 2019-10-16 16:31 */ @Slf4j public class DisruptorEvent implements Serializable { ...原创 2019-10-18 15:33:21 · 1100 阅读 · 0 评论 -
高性能的异步处理框架Disruptor(四)——Disruptor2.0的优化
现在读者应该能理解如下运行流程图了。如何还看不懂,则需要回顾上篇文章 Disruptor消费者的依赖关系 Disruptor2.0主要变化有 3 点: 更贴切的命名; 把 producer barrier(生产者屏障)整合进了 ring buffer; 将 Disruptor Wizard 加入了主代码库。 对于上图的实现方案,在新版本的结构图大概如下: 可以看到新版本更加简约,Pro...原创 2019-10-14 14:29:14 · 751 阅读 · 0 评论 -
高性能的异步处理框架Disruptor(一)——认识RingBuffer与Disruptor
Disruptor是什么 Disruptor 是一个高性能的异步处理框架。 可以认为是最快的消息框架(轻量的 JMS),也可以认为是一个观察者模式的实现,或者事件监听模式的实现。它允许开发者使用多线程技术去创建基于任务的工作流。Disruptor 能用来并行创建任务,同时保证多个处理过程的有序性。Disruptor 的目标就是快,高效。 ArrayBlockingQueue也是一个非常优秀的有界队...原创 2019-10-09 10:31:51 · 1190 阅读 · 0 评论 -
高性能的异步处理框架Disruptor(二)——Disruptor对RingBuffer的读写策略
前文了解了Disruptor与RingBuffer的基础知识后,接下来了解Disruptor对 ringbuffer的访问控制策略。 Disruptor对RingBuffer的读取策略 假设消费者(Consumer)是一个想从 Ring Buffer 里读取数据的线程,它可以访问 ConsumerBarrier对象——这个 对象由 RingBuffer 创建并且代表消费者与 RingBuffer ...原创 2019-10-09 11:01:35 · 827 阅读 · 0 评论 -
高性能的异步处理框架Disruptor(三)——Disruptor消费者的依赖关系
前文解释了Disruptor的生产者,消费者的简单工作流程。接下来学习当Disruptor的多个消费者存在依赖关系时,Disruptor对RingBuffer中的消息如何按照消费者的依赖关系来处理。 Disruptor系统的最初设计是为了支持需要按照特定的顺序发生的阶段性类似流水线事件,这种需求在企业应用系统开发中很常见。 如上图所示,对于独立的一个生产者和三个消费者。一个比较常见的依赖结构是:...原创 2019-10-09 22:08:45 · 1228 阅读 · 0 评论