Hmily 源码解析 (三) —— 高效异步任务框架的使用


1. DisruptorProvider

  • Disruptor队列提供者。DisruptorProvider实例里面维护了一个Disruptor队列实例ringBuffer。实际上DisruptorProvider的作用就是封装了一下ringBuffer队列,并提供统一的发布入口。也就是生产者调用的入口。
  • 首先新建DisruptorProvider实例的时候就传入了一个ringBuffer实例,生产者通过调用data方法将任务发布到ringBuffer上。
  • 简单说一下data函数。这是Disruptor 框架发布事件的逻辑,分为三个步骤
    1. 先从 RingBuffer 获取下一个可以写入的事件的序号;
    2. 获取对应的事件对象,将业务信息写入事件对象;事件对象Disruptor 要我们自定义,如下hmily定义了一个DataEvent类作为事件对象。事件对象只是一个载体,在生产者生成任务与消费者消费任务时,并不新增与销毁事件对象。事件对象内存储的才是真实被生产(/消费)的业务信息。
    3. 将事件提交到 RingBuffer;后面消费者就会读取到该position,处理该业务信息。

在这里插入图片描述

2. DisruptorProviderManage

  • 队列管理者。该类负责创建DisruptorProvider实例,也就是Disruptor队列,并提供与维护该队列。可以说如果有一个DisruptorProviderManage实例创建,那么就会有一个Disruptor任务队列。

  • DisruptorProviderManage也是泛型的,它的泛型同DisruptorProvider的泛型一致,是指向被生成与消费业务信息类

  • 这里可以先说一下,每一个加入himly框架的微服务,在启动后都会创建两个DisruptorProviderManage实例,对应的两

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值