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

侠客推 网站建设棋牌软件开发多少钱

侠客推 网站建设,棋牌软件开发多少钱,江苏国龙翔建设有限公司网站,东莞网站建设网目录前言#xff1a;1、Worker进程间通信原理2、Worker进程间技术(Netty、ZeroMQ)3、Worker 内部通信技术(Disruptor)总结#xff1a; 目录 前言#xff1a; 这篇文章#xff0c;博客主要介绍下Storm中Worker进程间和进程内部通信的原理和技术。整篇内容仅供了解#x…目录前言1、Worker进程间通信原理2、Worker进程间技术(Netty、ZeroMQ)3、Worker 内部通信技术(Disruptor)总结 目录 前言 这篇文章博客主要介绍下Storm中Worker进程间和进程内部通信的原理和技术。整篇内容仅供了解如有不足或错误请指出。 Worker间的通信经常需要通过网络跨节点进行Storm使用ZeroMQ或Netty(0.9以后默认使用)作为进程间通信的消息框架。 Worker进程内部通信不同worker的thread通信使用LMAX Disruptor来完成。 不同topologey之间的通信Storm不负责需要自己想办法实现例如使用kafka等。 1、Worker进程间通信原理 worker进程间消息传递机制消息的接收和处理的大概流程见下图 1、对于worker进程来说为了管理流入和传出的消息每个worker进程有一个独立的接收线程一个worker进程运行一个专用的接收线程来负责将外部发送过来的消息移动到对应的executor线程的incoming-queue中(对配置的TCP端口supervisor.slots.ports进行监听)对应Worker接收线程每个worker存在一个独立的发送线程transfer-queue的每个元素实际上代表一个tuple的集合 它负责从worker的transfer-queue中读取消息并通过网络发送给其他worker。 2、每个executor有自己的incoming-queue 和outgoing-queue 。 Worker接收线程将收到的消息通过task编号传递给对应的executor(一个或多个)的incoming-queues; 每个executor有单独的线程分别来处理spout/bolt的业务逻辑业务逻辑输出的中间数据会存放在outgoing-queue中当executor的outgoing-queue中的tuple达到一定的阀值executor的发送线程将批量获取outgoing-queue中的tuple,并发送到transfer-queue中。 3、每个worker进程控制一个或多个executor线程用户可在代码中进行配置。其实就是我们在代码中设置的并发度个数。 总结每个work都有对应的接受线程用来通过网络接收外部发送过来的消息并根据tuple中包含的taskId匹配到对应的excutor将该消息移动到对应的excutor线程的incoming-queue里面excutor从incoming-queue里面拿数据进行处理后通过bolt的excute方法来消费incoming-queue中的tuple数据将中间结果输出到outgoing-queue中当outgoing-queue中的数据达到一定的阈值之后excutor的发送线程会将outgoing-queue中的数据发送到worker的transfer-queue中而worker的发送线程再将transfer-queue中读到的消息通过网络发送给其他的worker. 2、Worker进程间技术(Netty、ZeroMQ) 2.1、Netty Netty是一个NIO client-server(客户端服务器)框架使用Netty可以快速开发网络应用例如服务器和客户端协议。Netty提供了一种新的方式来使开发网络应用程序这种新的方式使得它很容易使用和有很强的扩展性。Netty的内部实现时很复杂的但是Netty提供了简单易用的api从网络处理代码中解耦业务逻辑。Netty是完全基于NIO实现的所以整个Netty都是异步的。 书籍Netty权威指南 2.2、ZeroMQ ZeroMQ是一种基于消息队列的多线程网络库其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象提供跨越多种传输协议的套接字。ZeroMQ是网络通信中新的一层介于应用层和传输层之间按照TCP/IP划分其是一个可伸缩层可并行运行分散在分布式系统间。 ZeroMQ定位为一个简单好用的传输层像框架一样的一个socket library他使得Socket编程更加简单、简洁和性能更高。是一个消息处理队列库可在多个线程、内核和主机盒之间弹性伸缩。ZMQ的明确目标是“成为标准网络协议栈的一部分之后进入Linux内核”。 3、Worker 内部通信技术(Disruptor) 3.1、Disruptor的来历 一个公司的业务与技术的关系一般可以分为三个阶段。第一个阶段就是跟着业务跑。第二个阶段是经历了几年的时间才达到的驱动业务阶段。第三个阶段技术引领业务的发展乃至企业的发展。所以我们在学习Disruptor这个技术时不得不提LMAX这个机构因为Disruptor这门技术就是由LMAX公司开发并开源的。LMAX是在英国注册并受到FSA监管监管号码为509778的外汇黄金交易所。LMAX也是欧洲第一家也是唯一一家采用多边交易设施Multilateral Trading FacilityMTF拥有交易所牌照和经纪商牌照的欧洲顶级金融公司LAMX拥有最迅捷的交易平台顶级技术支持。LMAX交易所使用“MTF分裂器Disruptor”技术可以在极短时间内一般在3百万秒之一内处理订单在一个线程里每秒处理6百万订单。所有订单均为撮合成交形式无一例外。多边交易设施MTF曾经用来设计伦敦证券交易所london Stock Exchange、德国证券及衍生工具交易所Deutsche Borse和欧洲证券交易所Euronext。2011年LMAX凭借该技术获得了金融行业技术评选大赛的最佳交易系统奖和甲骨文“公爵杯”创新编程框架奖。 3.2、Disruptor是什么 1、 简单理解Disruptor是一个Queue。Disruptor是实现了“队列”的功能而且是一个有界队列(长度有限)。而队列的应用场景自然就是“生产者-消费者”模型。 2、 在JDK中Queue有很多实现类包括不限于ArrayBlockingQueue、LinkBlockingQueue这两个底层的数据结构分别是数组和链表。数组查询快链表增删快能够适应大多数应用场景。 3、 但是ArrayBlockingQueue、LinkBlockingQueue都是线程安全的。涉及到线程安全就会有synchronized、lock等关键字这就意味着CPU会打架。 4、 Disruptor一种线程之间信息无锁的交换方式使用CASCompare And Swap/Set操作。 3.2、Disruptor主要特点 1、 没有竞争没有锁非常快。 2、 所有访问者都记录自己的序号的实现方式允许多个生产者与多个消费者共享相同的数据结构。 3、 在每个对象中都能跟踪序列号ring bufferclaim Strategy生产者和消费者加上神奇的cache line padding就意味着没有为伪共享和非预期的竞争。 3.3、 Disruptor 核心技术点 Disruptor可以看成一个事件监听或消息机制在队列中一边生产者放入消息另外一边消费者并行取出处理. 底层是单个数据结构一个ring buffer。 每个生产者和消费者都有一个次序计算器以显示当前缓冲工作方式。 每个生产者消费者能够操作自己的次序计数器的能够读取对方的计数器生产者能够读取消费者的计算器确保其在没有锁的情况下是可写的。 核心组件 Ring Buffer 环形的缓冲区负责对通过 Disruptor 进行交换的数据事件进行存储和更新。 Sequence 通过顺序递增的序号来编号管理通过其进行交换的数据事件对数据(事件)的处理过程总是沿着序号逐个递增处理。 RingBuffer底层是个数组次序计算器是一个64bit long 整数型平滑增长。 Ring Buffer 运行的过程 1、 接受数据并写入到脚标31的位置之后会沿着序号一直写入但是不会绕过消费者所在的脚标。 2、 Joumaler和replicator同时读到24的位置他们可以批量读取数据到30 3、消费逻辑线程读到了14的位置但是没法继续读下去因为他的sequence暂停在15的位置上需要等到他的sequence给他序号。如果sequence能正常工作就能读取到30的数据。 总结 以上的一些内容只需要了解即可目的还是为了能够更好的理解Storm内部的通信的原理为今后的进阶之路打好基础。
http://www.yutouwan.com/news/444222/

相关文章:

  • 去哪个网站找题目给孩子做网站建设的比较合理的流程
  • 上海手机网站建设报价网站优化建设山东
  • 企业电器网站建设方案免费软件的定义
  • 十堰网站建设电话搜索引擎优化方案案例
  • 成都建设网站那家好电子商务网站建设预算
  • 辽宁省建设注册中心网站国际财经新闻最新头条
  • 网站初期缺点html免费模板下载
  • 网站建设需要会网站推广服务报价表
  • 淘宝客网站虚拟主机公司网站开发建设
  • 网站做二维码吗做网站应怎么缴税
  • 北京南站地铁几号线建设银行网站注销
  • 企业网站建立制作网站后台服务
  • 购物车网站设计网站开发微信提现功能
  • 学习做网站大概多久时间如何用自己电脑做网站服务器
  • 大方县住房城乡建设局网站做一个网站的基本步骤
  • 自己建一个影视网站要怎么做建设网站容易吗
  • 网站架构设计师福建石狮有做网站的没
  • 做二维码电子档相册 找什么网站如何注册网站平台
  • 南山区住房和建设局官方网站怎么做线上推广
  • 县工商局 网站建设wordpress 猜你喜欢
  • 买做指甲的材料在哪个网站logo免费设计在线生成无水印
  • 中国建设银行网站登录不上登录自治区建设厅的网站查询
  • 移动设备网站开发注意点wordpress调用标签软件
  • 红岗网站建设网站建设公司南昌
  • 网上做网站网站代理江西网站建设与推广
  • 国外室内设计网站大全网站广西建设职业技术学院官网
  • 建设银行网站下载中心在哪权威的网站建设排行榜
  • dede重工蓝色企业免费网站模板网站建设实训心得3000字
  • 石家庄专业网站营销阿玛尼手表
  • 收费的网站怎么做的什么网站都有漏洞