1

我正在处理我有要求的 spring xd 和 gemfire xd,我从运行 xd-admin 的节点(本地文件系统)之一收集数据。我想收集这个文件并发送处理。以下是我的流定义。

源文件 /tmp/xd/input --ref true | 处理器(消息收集器) | 处理器((方程计算)|水槽(gemfire xd)

我有 3 个节点 spring xd 和 gemfire xd 集群。第一个节点(xd-admin.xd-container)和 2 & 3 个节点 xd-container 正在运行。容器已正确注册到 xd-admin。我配置了单个 redis 实例。

我的要求是,我想从文件中收集我的数据并发送进程并存储到 gemfire xd。

messageCollector --> 将所有消息作为 HashMap 收集并发送到下一个处理器 Equation calc,这里所有记录都将通过方程式并得到计算,结果将发送到下一个 sink(gemfire xd) 插入。

这一点,我已经在单节点环境中进行了测试并且运行良好。现在,如上所述,我转向分布式环境。

我应该如何在分布式环境中创建模块。我是否需要将所有模块移动到所有可用节点。

或者

源模块仅存在于实际文件和其余模块进入所有可用容器的位置。

在这里,在方程式计算器模块中,我正在维护文件中每条记录的序列。并且应该在 gemgire xd(sink) 中保持相同的顺序。

由于现在它处于单节点环境中,因此它作为单节点处理的整个事物运行良好。

现在,我转移到了分布式环境,其中没有如上所述的容器。如何保留我的序列直到插入。

请帮助我在分布式环境中部署模块。

谢谢,-Suyodha

4

1 回答 1

2

criteria部署清单中使用以将您的文件源定向到特定节点。用于count将您的处理器部署到多个节点。

但是,一旦执行此操作,您将无法保持顺序。如果您只有第二个处理器的 1 个实例,一切都会通过它,但序列可能不是文件中的原始序列。

于 2014-07-28T19:45:58.560 回答