首页 > 解决方案 > 在“DistributionStream”的接收器“tcp”处丢弃事件,因为它仍在尝试重新连接

问题描述

我在 HA 集群的不同服务器上有两个 SP 节点。我需要使用分发接收器,因为两个节点都消耗来自 EI 的事件,但被动节点将这些事件保存在队列中。活动节点向数据库发送事件。我在 tcp sink 中使用 @distribution 注释将事件从被动节点分发到主动节点。此外,我将 forcePublish 属性设置为 true,如文档中所述。https://docs.wso2.com/display/SP410/Minimum+High+Availability+%28HA%29+Deployment 现在我有两个问题。

  1. 当其中一个节点关闭时,活动节点仍在丢弃事件并出现此错误:Dropping event at Sink 'tcp' at 'DistributionStream' 因为它仍在尝试重新连接! 如果它在 HA 中运行并且一个节点仍处于启动状态,为什么会出现此错误?

2.当两个节点都在运行时,被动节点仍然不向主动节点分发事件,所以只有一半的事件被发送到DB,另一半仍然保留在被动节点上,只有当被动节点状态变为主动时才会发布.

经销商

Distributor.siddhi

@sink(type='tcp' , sync='true', @map(type='json'), @distribution(
forcePublish='true',
strategy='broadcast',
@destination(
url='tcp://x.x.x.0:7612/ExecutorSourceStream'),
@destination(
url='tcp://x.x.x.1:7612/ExecutorSourceStream')))
define stream DistributionStream(
test string
);

执行者

Executor.siddhi

@source(type='tcp', context='ExecutorSourceStream', @map(type='json'))
define stream ExecutorSourceStream(
test string
);

两个节点上的 Deployment.yml

siddhi: 
extensions: 
- extension: 
    name: tcp
    namespace: source
    properties: 
      host: 0.0.0.0
      port: 7612

任何想法,这些问题的原因是什么?

标签: siddhiwso2sp

解决方案


实际上,它已解决参考https://github.com/wso2/product-sp/issues/570


推荐阅读