当前位置: 首页 > news >正文

高性能消息队列Disruptor

定义一个事件模型

之后创建一个java类来使用这个数据模型。

/*
<h1>事件模型工程类,用于生产事件消息</h1>
*/
no usages
public class EventMessageFactory implements EventFactory<EventMessage> {
@Overridepublic EventMessage newInstance(){
return new EventMessage();
}

之后需要定义一个异常处理类,如果发出的消息出现了异常使用这个异常处理类进行处理。

no usages
@Slf4j
public class EventMessageExceptionHandler implements ExceptionHandler<EventMessage> {
no usages
@Override
public void handleEventException(Throwable ex,long sequencer EventMessage event){
}
3 usages
@Override
public void handleOnStartException(Throwable ex){
}
4 usages
@Override
public void handle0nShutdownException(Throwable ex){}
}

第一个方法是处理事件时出现的异常。

第二个方法是处理消费线程之前出现的异常。

第三个方法是处理消费线程结束之前出现的异常。

之后定义一个消费者,也就是消息处理器。

在这个方法的外面定义一个header的名称

第一给方法是独立的消费者也就是处理每一个消费者的所有信息

第二个方法是公告消费者,不会处理重复的信息。

 之后定义一个工具类

第一个方法是初始化的方法

第二个方法是销毁之前需要执行的销毁方法

之后定义一个事件转换器

这个sequence可以看成是消息序号

之后定义一个disruptor,初始化放在第一个方法上面,然后定义一个ringBuffer,和一个消息工厂类。

然后定一个方法用于生产者发布消息

然后时消费者处理消息

之后对初始化方法进行修改。

 

这里面第一个参数是给消息分配空间

第二个参数是容器的大小

第三个是线程工厂的实现类

第四个是生产者的类型

最后一个参数是消息等待策略

然后对二个方法进行修改

 之后定义一个新的class类来实现EventMessageDisruptor,并在里面进行实现消费者。

在定义另一消费者类型的class。

然后来实现这两个消费者。

http://www.lryc.cn/news/530014.html

相关文章:

  • kamailio中的sctp模块
  • 前端学习-事件解绑,mouseover和mouseenter的区别(二十九)
  • 独立游戏RPG回顾:高成本
  • 10.4 LangChain核心架构揭秘:模块化设计如何重塑大模型应用开发?
  • 【学习笔记】深度学习网络-正则化方法
  • 网站快速收录:如何优化网站头部与底部信息?
  • 网络测试工具
  • 使用HttpClient和HttpRequest发送HTTP请求
  • 软件工程概论试题五
  • 填充每个节点的下一个右侧节点指针力扣--116,117
  • DBUtils中QueryRunner(空参,传数据源)构造方法的区别及应用场景
  • STM32 TIM输入捕获 测量频率
  • Autosar-以太网是怎么运行的?(Davinci配置部分)
  • 16.[前端开发]Day16-HTML+CSS阶段练习(网易云音乐五)
  • langchain 实现多智能体多轮对话
  • Java-数据结构-优先级队列(堆)
  • C++实现状态模式
  • FreeRTOS学习笔记2:FreeRTOS的基础知识
  • 计算机网络之计算机网络的分类
  • 从理论到实践:Linux 进程替换与 exec 系列函数
  • Flutter常用Widget小部件
  • 微信小程序实战0 设置
  • 2025开源DouyinLiveRecorder全平台直播间录制工具整合包,多直播同时录制、教学直播录制、教学视频推送、简单易用不占内存
  • 使用 postman 测试思源笔记接口
  • 当WebGIS遇到智慧文旅-以长沙市不绕路旅游攻略为例
  • 阿里最新普通x231 逆向分析
  • php的使用及storm环境部署
  • 高可用 Keepalived 服务部署流程
  • 【新春特辑】2025年1月科技浪潮中的AI最新时事与科技趋势
  • 解决Django非ORM模型提示初始化request问题