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

电子商城网站设计公司哪个好百度推广充值必须5000吗

电子商城网站设计公司哪个好,百度推广充值必须5000吗,静安区品牌网站建设,仙桃做网站的公司有哪些Disruptor是LMAX公司开源的高性能内存消息队列&#xff0c;单线程处理能力可达600w订单/秒。本文将使用该框架实现生产-消费者模式。一、框架的maven依赖 <!-- https://mvnrepository.com/artifact/com.lmax/disruptor --><dependency><groupId>com.lmax<…
 `Disruptor`是LMAX公司开源的高性能内存消息队列,单线程处理能力可达600w订单/秒。本文将使用该框架实现生产-消费者模式。

一、框架的maven依赖

   <!-- https://mvnrepository.com/artifact/com.lmax/disruptor --><dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>3.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 EventHandler<MsgEvent>, WorkHandler<MsgEvent> {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 RingBuffer<MsgEvent> ringBuffer(){NamedThreadFactory threadFactory = new NamedThreadFactory("MsgEvent-",true);EventFactory<MsgEvent> eventFactory = new EventFactory<MsgEvent>() {@Overridepublic MsgEvent newInstance() {return new MsgEvent();}};Disruptor<MsgEvent> 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 EventTranslatorOneArg<MsgEvent,String> TRANSLATOR =  new EventTranslatorOneArg<MsgEvent,String>() {@Overridepublic void translateTo(MsgEvent event, long sequence, String arg0) {event.setData(arg0);}};private static RingBuffer<MsgEvent> ringBuffer;@Autowiredpublic  void setRingBuffer(RingBuffer<MsgEvent> ringBuffer) {MsgPublish.ringBuffer = ringBuffer;}
}

六、测试

本次测试使用的是分组模式,可以发现一个消息只能被一个消费者消费,且每个消费者都由单独的线程处理。
在这里插入图片描述

七、总结

本次只是简单的应用disruptor框架实现生产-消费者模式,对于disruptor的原理主要是RingBuffer环形数组,这个咱们后续再进一步研究。

http://www.yidumall.com/news/3579.html

相关文章:

  • window7用jsp做的网站要什么工具津seo快速排名
  • 网站广告推送怎么做seo点击排名软件哪家好
  • 云网站系统微信营销平台哪个好
  • 网站建设功能seo培训机构管理系统哪个好
  • 移动网站设计尺寸搜狗网站收录
  • 宁波网站优化价格百度pc端入口
  • 苏州外贸网站建设优化推广北京seo服务行者
  • 网站批量修改网络推广平台有哪些
  • 帮别人做网站赚钱真正免费的网站建站平台运营
  • 青岛优化网站多少钱网络营销软文范例500字
  • 微信微网站制作珠海百度搜索排名优化
  • 可以自己做网站的网址近期国际新闻20条
  • 小笨鸟跨境电商平台什么是搜索引擎优化seo
  • 电子商务网站建设的难点百度官网
  • 做红k线网站色盲测试图免费测试
  • 中国室内设计联盟网站上海关键词自动排名
  • 中国建设部门官方网站女教师网课入侵录屏冫
  • 物流网站开题报告厦门人才网唯一官方网站登录入口
  • 企业做网站都购买域名吗查看百度关键词价格
  • 什么是网站的后台精准ip地址查询工具
  • 直销网站有没有适合在家做的手工活长沙网络公司营销推广
  • ui设计包括哪些内容seo黑帽优化
  • 订货网站怎么做网站建设排名优化
  • wordpress新建页面分类seo站
  • 酒店网站制作搜索引擎优化排名品牌
  • 代码做网站网站推广的方法有哪些
  • 英文网站建设模板站长之家网站流量查询
  • bootstrap 个人网站模板软文营销策划方案
  • 现在网站的外部链接怎么做武汉seo网站推广培训
  • 做家装施工的网站网络营销与推广