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

微信一键登录网站怎么做郑州cms建站模板

微信一键登录网站怎么做,郑州cms建站模板,wordpress免费吗,怎么用ppt做网站设计Disruptor简介 Disruptor(中文翻译为“破坏者”或“颠覆者”)是一种高性能、低延迟的并发编程框架,最初由LMAX Exchange开发。它的主要目标是解决在金融交易系统等需要高吞吐量和低延迟的应用中的并发问题。 Disruptor特点 无锁并发&#x…

Disruptor简介

Disruptor(中文翻译为“破坏者”或“颠覆者”)是一种高性能、低延迟的并发编程框架,最初由LMAX Exchange开发。它的主要目标是解决在金融交易系统等需要高吞吐量和低延迟的应用中的并发问题。

Disruptor特点

  1. 无锁并发:Disruptor基于无锁的数据结构,它允许多个线程并发地读取和写入数据,而无需使用传统锁定机制,从而避免锁定的竞争和性能瓶颈。

  2. 环形缓冲区:Disruptor使用一个环形缓冲区,将数据项存储在其中。这个环形缓冲区可以通过预分配的方式来减少内存分配和垃圾回收的开销。

  3. 事件驱动:Disruptor的核心思想是将数据项(事件)从生产者传递到消费者,通过一种发布-订阅的模型来实现。生产者将事件写入缓冲区,而消费者从缓冲区中读取事件进行处理。

  4. 高性能:Disruptor专注于提供极高的吞吐量和低延迟,适用于需要快速处理大量数据的应用,如金融交易系统、网络数据传输等。

  5. 易于使用:尽管Disruptor的内部实现复杂,但它提供了简单而清晰的API,使开发人员能够相对容易地集成和使用它。

  6. 并发编程的辅助工具:Disruptor不仅仅是一个并发编程框架,还提供了一些辅助工具,如事件处理器、工作池等,帮助开发者更好地处理并发任务。

 Disruptor应用

Disruptor可以理解为一个可以集成在项目里的MQ,它主要也分为了生产者,消息队列和消费者这么几部分,接下来用一个例子演示

引进依赖

<dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>3.4.2</version>
</dependency>

定义监听实体

@Data
public class DisruptorEvent {/*** 定义加入队列的时间毫秒值*/private long creatTime;/*** 携带的其他信息*/private String data;}

定义消费者

实现EventHandler接口,重写onEvent方法

@Slf4j
public class DisruptorConsumer implements EventHandler<DisruptorEvent> {@Overridepublic void onEvent(DisruptorEvent disruptorEvent, long l, boolean b) throws Exception {log.debug("消费者开始消费数据:[{}]", disruptorEvent);//模拟复杂环境下系统延迟Thread.sleep(1100);}
}

初始化Disruptor

由于我们后续还要用到这个对象,所以要把他交给IOC容器来管理,定义bean名称,避免后续有多个Disruptor对象

@Configuration
public class DisruptorConfig {/*** 队列长度,注意必须是2的n次幂*/private static final int RING_BUFFER_SIZE = 1024;@Bean(name = "cardDisruptor")public Disruptor<DisruptorEvent> disruptorStart() {DisruptorConsumer consumer = new DisruptorConsumer();Disruptor<DisruptorEvent> disruptor = new Disruptor<>(DisruptorEvent::new,RING_BUFFER_SIZE,Executors.defaultThreadFactory(),ProducerType.MULTI,new BlockingWaitStrategy());disruptor.handleEventsWith(consumer);disruptor.start();return disruptor;}
}

定义生产者

@Slf4j
public class DisruptorProducer {private static Disruptor<DisruptorEvent> disruptor;public DisruptorProducer(Disruptor<DisruptorEvent> disruptor) {DisruptorProducer.disruptor = disruptor;}public static void push(DisruptorEvent disruptorEvent) {//获取队列RingBuffer<DisruptorEvent> ringBuffer = disruptor.getRingBuffer();boolean flag = ringBuffer.tryPublishEvent(new EventTranslator<DisruptorEvent>() {@Overridepublic void translateTo(DisruptorEvent event, long l) {//这里一定要写成这种set的形式(也就是说不要改变这个event的内存指向地址),不然消费者会拿不到值event.setData(disruptorEvent.getData());event.setCreatTime(disruptorEvent.getCreatTime());}});if (!flag) {throw new RuntimeException("发送消息失败!");}}
}

测试

使用postman模拟并发10次

public void test() {DisruptorEvent event = new DisruptorEvent();event.setData("哈哈哈");event.setCreatTime(System.currentTimeMillis());DisruptorProducer.push(event);log.info("请求成功");}

http://www.yayakq.cn/news/579802/

相关文章:

  • 东莞网站开发后缀深圳品牌策划公司推荐
  • 网站建设汽车后市场解决方案网站主机 流量
  • 上海建筑设计公司网站广州做网站要多少钱
  • 如何做家乡网站有网站怎么建设手机站
  • 现在什么省网站备案最快做家宴网站
  • 建设电影网站需要多少钱凡科建站快车代理登录
  • 长春火车站是哪个区网页设计导航栏设计
  • 包头有没有专业做淘宝网站的二手房网站建设书
  • pluto wordpress官网优化公司
  • 商河网站建设上海全上海全国网站建设
  • wordpress安装网站吗网站开发分销系统
  • 如何给网站做seowordpress重新
  • 嘉兴网络项目建站公司公众号做成网站那样怎么做
  • 学校网站建设先进个人荣誉短网址生成怎么使用
  • 做触屏网站颍上网站建设
  • 广州公司网站提供盐城网站优化推广服务
  • 网站建设的实验小结清远做网站的
  • 网站营销工具wordpress html模板下载
  • 河间网站网站建设永久不收费的软件app
  • 做哪方面的网站好呢酒店网站建设方案书
  • 局域网多网站建设做图去哪个网站找素材
  • gta 买房网站建设中杭州网站建设公司联系方式
  • 2022年百度seo西安百度推广优化公司
  • 网站修改备案号WordPress首页怎么打开
  • 网站建设需要集齐哪5份资料整合营销传播案例分析
  • vs网站模板怎么做淘宝网站赚钱技巧
  • 新闻门户网站源码建设p2p网站
  • 检察 网站建设医院网站 整站源码
  • 网站开发优势互联网推广工资很高吗
  • 朋友做网站网站挣了好多钱免费发外链平台