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

简单的手机网站模板下载安装专业做招聘网站

简单的手机网站模板下载安装,专业做招聘网站,学校网站制作模板,电商主图设计网站Disruptor是LMAX公司开源的高性能内存消息队列#xff0c;单线程处理能力可达600w订单/秒。本文将使用该框架实现生产-消费者模式。一、框架的maven依赖 !-- https://mvnrepository.com/artifact/com.lmax/disruptor --dependencygroupIdcom.lmax… Disruptor是LMAX公司开源的高性能内存消息队列单线程处理能力可达600w订单/秒。本文将使用该框架实现生产-消费者模式。一、框架的maven依赖 !-- https://mvnrepository.com/artifact/com.lmax/disruptor --dependencygroupIdcom.lmax/groupIdartifactIddisruptor/artifactIdversion3.4.2/version/dependency二、消息事件 package com.monika.main.system.mq;import com.lmax.disruptor.EventFactory; import com.lmax.disruptor.EventProcessor;import java.util.EventObject;/*** author:whh* date: 2024-12-04 20:27* p/p*/ public class MsgEvent {private String data;public String getData() {return data;}public void setData(String data) {this.data data;} } 三、消息事件处理器 package com.monika.main.system.mq;import com.lmax.disruptor.EventHandler; import com.lmax.disruptor.WorkHandler;/*** author:whh* date: 2024-12-04 22:28* p* * * /p*/ public class MsgEventHandler implements EventHandlerMsgEvent, WorkHandlerMsgEvent {private String name;public MsgEventHandler(String name) {this.name name;}Overridepublic void onEvent(MsgEvent event, long sequence, boolean endOfBatch) throws Exception {System.out.println(name-----start-----sequence);Thread.sleep(1000*10);System.out.println(ThreadName: Thread.currentThread().getName());System.out.println(event.getData() end seq: sequence);}Overridepublic void onEvent(MsgEvent event) throws Exception {System.out.println(name-----start-----);Thread.sleep(1000*10);System.out.println(ThreadName: Thread.currentThread().getName());System.out.println(event.getData());System.out.println(name-----end-----);} } 该消息处理器实现了两个接口EventHandler接口该接口实现统一消费一个消息会被所有消费者消费WorkHandler接口该接口实现分组消费一个消息只能被一个消费者消费多消费者轮询处理。 四、Disruptor配置 package com.monika.main.system.mq;import cn.hutool.core.thread.NamedThreadFactory; import com.lmax.disruptor.*; import com.lmax.disruptor.dsl.Disruptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** author:whh* date: 2024-12-04 20:33* p/p*/Configuration public class RingBufferConfig {Beanpublic RingBufferMsgEvent ringBuffer(){NamedThreadFactory threadFactory new NamedThreadFactory(MsgEvent-,true);EventFactoryMsgEvent eventFactory new EventFactoryMsgEvent() {Overridepublic MsgEvent newInstance() {return new MsgEvent();}};DisruptorMsgEvent disruptor new Disruptor(eventFactory,1024, threadFactory);//定义两个消费者MsgEventHandler m1 new MsgEventHandler(m1);MsgEventHandler m2 new MsgEventHandler(m2);//disruptor.handleEventsWith(m1,m2); //统一消费一个消息会被所有消费者消费disruptor.handleEventsWithWorkerPool(m1,m2);//分组消费一个消息只能被一个消费者消费多消费者轮询处理//disruptor.handleEventsWith(m1).then(m2); //顺序消费1、3先并行处理然后2再处理disruptor.start();//配置多消费者每个消费者将有单独的线程处理return disruptor.getRingBuffer();} } 五、消息生产者MsgPublish package com.monika.main.system.mq;import com.lmax.disruptor.EventTranslatorOneArg; import com.lmax.disruptor.RingBuffer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;/*** author:whh* date: 2024-12-04 20:45* p/p*/ Component public class MsgPublish {public static void publish(String message){/*** 返回布尔值表示事件是否发布成功如果失败可根据此值进行业务逻辑判断*/boolean b ringBuffer.tryPublishEvent(TRANSLATOR, message);}private static final EventTranslatorOneArgMsgEvent,String TRANSLATOR new EventTranslatorOneArgMsgEvent,String() {Overridepublic void translateTo(MsgEvent event, long sequence, String arg0) {event.setData(arg0);}};private static RingBufferMsgEvent ringBuffer;Autowiredpublic void setRingBuffer(RingBufferMsgEvent ringBuffer) {MsgPublish.ringBuffer ringBuffer;} } 六、测试 本次测试使用的是分组模式可以发现一个消息只能被一个消费者消费且每个消费者都由单独的线程处理。 七、总结 本次只是简单的应用disruptor框架实现生产-消费者模式对于disruptor的原理主要是RingBuffer环形数组这个咱们后续再进一步研究。
http://www.hkea.cn/news/14444580/

相关文章:

  • 网站的搭建流程自己做的网站可以开直播
  • 网站开发工程师优势企业网站建设优势
  • 一级域名网站泰安集团网站建设多少钱
  • 网站接入服务提供单位建设公司网站意义
  • 深圳商城网站制作公司谁有做任务网站
  • 东莞装饰网站建设上海网站优化
  • 眉山网站优化淘宝电商网站怎么做
  • 做网站 信科网络设计教学网站推荐
  • 安徽网站建设科技分类信息网站排行
  • 怀化冰山涯IT网站建设公司网站维护提示代码
  • 威海好的网站建设公司微信公众平台公众号
  • 邯郸网站设计在哪里姚孟信通网站开发中心
  • jsp做网站实例软件培训公司排名
  • 襄阳市做网站的公司韩国设计教程网站
  • 网站制作大概多少钱做网站一般需要多少钱
  • 美食网站建设背景免费素材网png
  • 公司做网站一般多少钱运营百度蜘蛛池
  • 外贸公司查询济南做网站优化价格
  • 网站建设与管理专业学什么装修网站设计案例
  • 免费网站制作多少钱郑州网站建
  • 厦门营销型网站建设公司广东网络公司网站
  • 陕西建设厅执业资格注册中心网站怎样做艾条艾柱网站
  • 城固网站建设wordpress 博客主机
  • 温州网站关键词推广最佳的资源磁力搜索引擎
  • 网站建设在哪里进行企业组网方案
  • 网站建设外包还是自建物联网工程是干什么的
  • 百度站长平台诊断上海seo方案
  • 南昌做兼职的网站设计网站开发设置网页端口
  • 周大福网站设计特点个人网站备案信息填写
  • 怎么区分营销型和展示型的网站东莞关键词排名推广