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

一个空间可以做多个网站吗国产系统2345

一个空间可以做多个网站吗,国产系统2345,欧洲卡一卡2卡3卡4卡,琴行网站开发学术论文Disruptor 是苹国外厂本易公司LMAX开发的一个高件能列#xff0c;研发的初夷是解决内存队列的延识问顾在性能测试中发现竟然与10操作处于同样的数量级)#xff0c;基于Disruptor开发的系统单线程能支撑每秒600万订单#xff0c;2010年在QCn演讲后#xff0c;获得了业界关注… Disruptor 是苹国外厂本易公司LMAX开发的一个高件能列研发的初夷是解决内存队列的延识问顾在性能测试中发现竟然与10操作处于同样的数量级)基于Disruptor开发的系统单线程能支撑每秒600万订单2010年在QCn演讲后获得了业界关注201年企业应用软件专家Martin Fower专门撰写长文介绍。同年它还获得了Oradle官方的Duke大奖。目前包括Apache StomCame、 L0g4 2在内的很多知名项目都应用了Disrupior以获取高性能。注意这里所说的队列是系统内部的内存队列而不是Kaka这样的分布式队列。 Github: https://github.com/LMAX-Exchange/disruptor Disruptor实现了队列的功能并且是一个有界队列可以用于生产者-消费者模型。 Disruptor的设计方案 Disruptor通过以下设计来解决队列速度慢的问题: 环形数组结构 为了避免垃圾回收采用数组而非链表。同时数组对处理器的缓存机制更加友好(空间局部性原理)。 元素位置定位 数组长度2n通过位运算加快定位的速度下标采取递增的形式不用担心index溢出的问题。index是ong类型即使100万QPS的处理速度也需要30万年才能用完. 无锁设计 每个生产者或者消费者线程会先申请可以操作的元素在数组中的位置申请到之后直接在该位置写入或者读取数据。 利用缓存行填充解决了伪共享的问题 利用缓存行填充定义了可为null的七个元素填充一个空的缓存行。​​​​​​​protected long p1, p2, p3, p4, p5, p6, p7; 实现了基于事件驱动的生产者消费者模型 (观察者模式) 消费者时刻关注着队列里有没有消息一旦有新消息产生消费者线程就会立刻把它消费 RingBuffer数据结构 使用RinaBufer来作为队列的数据结构RinaBuffer就是一个可自定义大小的环形数组。除数组外还有一个席列号(seouence)用以指向下一个可用的元素供生产者与消费者使用原理图如下 Disrupior要求没置数组长度为2的次幕。 在知道索引(ndex)下标的情况下存与取数组上的元素时间复杂度只有0(1)而这个index我们可以通过序列号与数组长度取模来计算得出indexsequence % entries.length。也可以用位运算来计算效率更高,此时aray.length必须是2的幂次方 indexsequeoe(entres.length-1) 当所有位置都放满了再放下一个时就会把0号位置覆盖掉。 问题: 能覆盖数据是否会导致数据丢失呢? 要覆盖数据时会执行一个策略Disruptor给提供多种策略比较常用的: 1BlockingWaistrategy策路 常见且默认的等待策略当这个队列里满了不执行覆盖而是阻塞等待使用ReenranLockCondition实现阻塞最节省COU但高并发场景下性能最差。适合CPU资源紧缺吞吐量和延迟并不重要的场景。 2Sleepinowaitstraterv策略 会在循环中不新等待数先进行自等待如果不功则使用Thread,veld让出CPU 并最终使用LockSuppor.parkNanos(1L)进行线程休眠以确保不占用太多的CPU资源。因此这个策略会产生比较高的平均延时。典型的应用场景就是异步日志。 3YeldingWaistrate策略 这个策略用于低延时的场合。消费者线程会不新循环监控缓中区变化在循环内部使用Thread,yed0让出CPU别的线理执行时间。如果要一个高性能的系统并且对延时比较有严格的要求可以考虑这种策略。 4BusySpinwaitstrategy策略 采用死盾环消费者线程会尽最大努力监控缓冲区的变化。对证时北常苛刻的场是使用。CPU核数以须大于消费者线理数量。推荐在线程绑定到固定的CPU的场景下使用。 Disruptor 核心概概念 RingBuffer (环形缓冲区): 基于数组的内存级别缓存是创建sequencer(序号)与定义WaitStrategy(拒绝策略)的入口。 Disruptor (总体执行入口): 对RingBuffer的封装持有RingBuffer、消费者线程池Executor、消费之集合ConsumerRepositorv等引用。 Sequence (序号分配器) : 对RingBufer中的元素进行序号标记通过顺序递增的方式来管理进行交换的数据(事件EVent)一个Sequence可以跟踪标识某个事件的处理 进度同时还能消除伪共享。 Sequencer (数据传输器) :Sequencer里面包含了Sequence是Disruptor的核心Seauencer有两个实现类: SingleProducerSequencer(单生产者实现)MultiProducerSeguencer(多生产者实现)Seguencer主要作用是实现生产者和消费者之间快速、正确传递数据的并发算法SequenceBarier(消费者屏): 用于控制RingBufer的Producer和Consumer之间的平衡关系并且决定了Consumer是否还有可处理的事件的逻辑。WaitStrategy(消费者等待策略): 决定了消费者如何等待生产者将Event生产进DisruptorWaitStrategy有多种实现策略Event: 从生产者到消费者过程中所处理的数据单元Event由使用者自定义。 EventHandler: 由用户自定义实现就是我们写消费者逻辑的地方代表了Disruptor中的一个消费者的接口。 EventProcessor:这是个事件处理器接口实现了Runnable处理主要事件循环处理Event拥有消费者的Sequence 。
http://www.zqtcl.cn/news/148237/

相关文章:

  • 山西成宁做的网站义乌网站建设优化排名
  • 东莞网站建设公司辉煌大厦阿里云服务器官方网站
  • 域名注册网站制作自己建网站需要钱吗
  • 东莞市房管局官方网站域名查询ip网站
  • 织梦模板添加网站地图温州做网站掌熊号
  • 怎样凡科建设网站建立网站的步骤
  • 模板类网站建设中国都有哪些网站
  • 深圳百度推广网站建设深圳电器网站建设
  • 响应式网站有什么区别官方app
  • 手机网站建设哪里好网站架构设计师待遇怎么样
  • 静态网站设计wordpress网页视频播放器
  • 打电话做网站的话术网站安全维护方案
  • 变更备案网站可以访问吗google浏览器下载安装
  • 网站空间更换网站开发的服务器是什么
  • 网站 网页玉溪建设网站
  • 江西宜春市城市建设档案馆网站朋友圈广告30元1000次
  • 响应式网站 分辨率惊艳的网站
  • 苏州网站公司排名前十最好看的视频免费下载
  • 快速设计一个网站wordpress4.9.6
  • 网站建立教学深圳宝安网站建设公司推荐
  • 深圳企业网站建设制作公司叶县红色家园网站建设
  • 网站制作报价被哪些因素影响建设银行官方网站首页个人登录
  • 免费网站怎么建谁能给个网站谢谢
  • 吴忠网站建设家里面的服务器可以做网站吗
  • 这是我自己做的网站做网站前台要学什么课程
  • 程序网站开发建设隔离变压器移动网站
  • 网站设置不发送消息怎么设置回来用typecho做的网站
  • 网站机房建设嵌入式培训机构哪家好
  • 购物网站页面设计图片网站 签约
  • 上海网站改版方案网站邮件设置