在接收器'DistributionStream' 'tcp'丢弃事件,因为它仍在尝试重新连接



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

  1. 当其中一个节点关闭时,活动节点仍在丢弃事件,并显示此错误:在"DistributionStream"的接收器"tcp"处丢弃事件,因为它仍在尝试重新连接!如果它在 HA 中运行并且一个节点仍在运行,为什么会出现此错误?

2.当两个节点都运行时,被动节点仍然不会将事件分发到主动节点,因此只有一半的事件发送到数据库,第二半仍保留在被动节点上,并且仅当被动节点将状态更改为主动时才会发布它们。

分配器

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
);

两个节点上的部署.yml

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

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

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

最新更新