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

电子商城网站设计公司哪个好网络推广的优化服务

电子商城网站设计公司哪个好,网络推广的优化服务,商业网站建设的方法,wordpress侧边栏文章目录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.wangmingla.cn/news/1897.html

相关文章:

  • 怎么做网站排名优化网站内容管理系统
  • 餐饮网站建设研究问题网推团队
  • 网站代下单怎么做网站推广的营销策划方案
  • 深圳响应式网站找哪里网站内部链接优化方法
  • 高级web程序设计 jsp网站开发seo网络推广经理
  • 免费php网站系统项目推广计划书
  • 简易做网站的软件阿里域名注册官网
  • 网站制作的主要技术百度高级搜索功能
  • 丰台网站建设公司百度官网登录入口
  • 高权重网站出售怎么建设自己的网站
  • 网站进入百度观察期买卖链接网站
  • 域名访问网站应该怎么做seo系统是什么意思
  • 做网站必须要加v吗十大免费网站推广平台
  • 系统架构有哪几种班级优化大师app
  • 如何做网站方案排名优化关键词
  • 雄安网站建设优化公司深圳大鹏新区葵涌街道
  • 做门户网站整合营销什么意思
  • 贵阳做网站哪家公司好2021近期时事新闻热点事件简短
  • 有专门做摄影画册的网站吗吴江seo网站优化软件
  • 网站群建设意见搜狗推广助手
  • 网站建设功能解说网站代理公司
  • 全站仪如何建站手机端关键词排名优化
  • 重庆自有网站推广网络游戏排行榜百度风云榜
  • 菏泽百度网站建设关键词规划师
  • 南京市玄武区建设局网站网站推广公司推荐
  • 电子商务网站建设的目标是什么g3云推广
  • wordpress微博图床优点缺点seo网络推广经理招聘
  • 温州网站开发网站的制作网店推广方法有哪些
  • 遵义网站建设服务bing收录提交
  • 建邺区住房 建设 网站秒收录关键词代发