storm通信机制

本文详细介绍了Storm的通信机制,包括Worker进程间的Netty和ZeroMQ通信,以及内部采用Disruptor进行线程间通信的方式。讨论了Worker接收线程、发送线程的工作流程,以及Executor如何处理数据。同时还分析了Disruptor作为无锁队列的高效特性。
摘要由CSDN通过智能技术生成

storm通信机制

Worker间的通信经常需要通过网络跨节点进行,Storm使用ZeroMQ或Netty(0.9以后默认使用)作为进程间通信的消息框架。
Worker进程内部通信:不同worker的thread通信使用LMAX Disruptor来完成。
不同topologey之间的通信,Storm不负责,需要自己想办法实现,例如使用kafka等;

1.Worker进程间通信

worker进程间消息传递机制,消息的接收和处理的大概流程见下图

这里写图片描述

  • 对于worker进程来说,为了管理流入和传出的消息,每个worker进程有一个独立的接收线程(对配置的TCP端口supervisor.slots.ports进行监听);
    对应Worker接收线程,每个worker存在一个独立的发送线程,它负责从worker的transfer-queue[transfer-queue的大小由参数topology.transfer.buffer.size来设置。]中读取消息,并通过网络发送给其他worker。
  • 每个executor有自己的incoming-queue和outgoing-queue。
    Worker接收线程将收到的消息通过task编号传递给对应的executor(一个或多个)的incoming-queues;
    每个ex
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值