Receiver和ReceiverImpl 详解

ReceiverReceiverImpl 详解

 

Receiver ReceiverImpl的功能:它们是s4传输层到应用层的入口,首先将在传输层的EventByteBuffer message)反序列化生成Stream能够识别的Event,然后该Event添加到相应的Stream中。

ReceiverImpl 实现了Receiver接口的两个方法:

(1)Void receive (ByteBuffer message) ();

(2)int getPartitionId ();

由于方法(2)是调用底层的listener getPartitionId()方法得到,这里我们暂时不详细论述,之后讲述ListenerTCPListenerUDPListener)时再详细说明。

这里,我们主要论述方法(1),以及ReceiverImplstream的交互原理。

ReceiverImpl 维护一个Map<StreamName, Stream> map,通过addStream(Stream<? extends Event> stream)map中添加streamaddStream 方法会在Streamstart()方法被调用,那么该Stream则被保存在map中。

receive (ByteBuffer message)()中,先将收到的message反序列化生成Event,然后获得该Event对应的StreamStreamName,从而在map中找到该Event所要到达的Stream,并调用该StreamreceiveEventEvent event)方法以获取该event。接下来,该Stream会调用目标PEProcessingElement)的HandleInputEvent(Event event)方法,使得该event被相应的PE处理。总的来说,流程如下:

 



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值