问题标签 [spring-xd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1940 浏览

rabbitmq - 在spring xd中使用远程rabbitmq作为接收器时连接被拒绝

为了测试 spring XD,我正在关注项目网页上的简短 twitter 流教程。教程运行单节点 spring XD 并在流定义中使用文件作为接收器。我能够毫无问题地运行该教程。XD 的版本是 1.0.0.M7 。

后来决定用rabbitmq,所以在同一台机器上安装了rabbitmq(RabbitMQ 3.3.4),把定义的sink部分改成了rabbit。

在部署流之前,我将 config/modules/modules.yml 更改如下。

由于这些是默认参数,所以我部署流时没有问题。我检查了队列中的消息,它们符合预期。

问题是,当我更改上述参数以连接并发送到同一 LAN 上另一台计算机上的 rabbitmq 时,我得到连接被拒绝。我检查了以下内容以缩小问题范围。

  • 我已经对 rabbitmq 配置文件进行了更改,以启用用户 guest 的远程访问。
  • 本地和远程防火墙都被禁用。
  • 这两台机器之间没有路由器等。
  • 我检查了rabbitmq是否正在监听5672端口。没关系。
  • 我编写了一个简单的 java rabbitmq 客户端并使用了 modules.yml 中的相同参数。客户端连接到远程rabbitmq服务器。我能够毫无问题地发送和接收消息。

我收到的错误消息如下。

我找不到为什么会这样。

0 投票
1 回答
1119 浏览

spring-xd - 如何让 Spring XD 在启动时部署一组预定义的流和点击

有没有办法在启动 spring xd 的新实例时启动一组已定义的蒸汽和水龙头?

场景是这样的:我们已经对我们的开发系统进行了一些原型设计,但是现在我们想构建它并将其发布给测试团队。我们希望自动化大部分后台工作,用户只需要担心流的输出,而不必担心流或其定义或部署。

为了方便这一点,我们可以使用任何运行时配置吗?

更新:我们目前的方法包括编写一个 shell 脚本来对 Spring API 进行一些休息调用,以创建和部署所需的流。

0 投票
1 回答
579 浏览

redis - Spring XD分布式运行时如何配置Redis?

Spring XD 文档 ( http://docs.spring.io/spring-xd/docs/1.0.0.RC1/reference/html/ ) 建议 Zookeeper 在 ensemble 中运行,以便 Zookeeper 具有高可用性。关于 Redis 的高可用性的细节并不多。

如果我要运行 2 个 XD 管理实例并说 4 个容器实例,我会看到 3 个选项

我应该在每个运行容器或管理员的服务器上运行一个 Redis 实例吗?在那种情况下,分布式运行时是否可以与处理不同模块传输的不同 Redis 实例一起正常工作?

或者

我应该在单独的服务器中运行 1 个 Redis 实例并配置所有 XD 实例以与该实例通信吗?在这种情况下,Redis 的 1 个实例不是高可用的

或者

我应该配置 Redis 集群还是 Redis Sentinel 高可用性?我不确定 XD 或任何其他客户端将如何连接到集群或 HA。

谢谢

0 投票
1 回答
302 浏览

spring-xd - spring xd中流中全局变量的任何概念?

场景:spring xd中的一个流定义,结构如下:

杰姆斯 | 过滤器 | 变换 | 高清晰度电视

在过滤器模块中,我向数据库发起查询以验证当前消息是否适用于进一步处理。

当满足条件时,消息传递到转换模块。

在转换模块中,我想访问过滤器模块的查询结果。

目前,我最终不得不在转换中再次触发查询以访问相同的结果集。

是否有任何形式的全局变量可以在消息从源到接收器跨不同模块传递的生命周期内应用?这有助于减少从数据库读取的延迟。

如果这是不可能的,那么推荐的替代方案是什么?

0 投票
1 回答
221 浏览

hadoop - Spring XD 动态部署清单

我一直在大量阅读 Spring XD 文档,但无法真正掌握我想要实现的与 Hadoop YARN 相关的两件事。

也许它们还不被支持或永远不会被支持——可能是因为我遗漏了一些让我的场景变得毫无意义的东西......

  1. 在 Hadoop YARN 中,ApplicationMaster 可以请求将容器分配到特定主机上,即“机架感知”。这允许在 HDFS 上的数据存储位置附近执行处理。

这种功能可以作为流部署清单中的评估属性公开吗?

请注意,我不是在谈论分区流,其中相同的容器为流中的所有模块处理相同的消息。

我希望在一组容器上部署流中间的模块的许多实例——这些容器还将保存我预先存在的大型静态数据的片段。我希望根据评估规则为每次调用选择最合适的模块实例,该评估规则涉及将正在处理的每条消息映射到存储在其中一个容器上的关联的预先存在的大文件。

  1. 部署流后,是否可以在多个容器中动态“横向扩展”一个模块的部署。例如,如果流中的一个模块在部署流后被证明是瓶颈,那么该模块的实例数量是否可以在更多容器中动态增加?

谢谢尼克

0 投票
1 回答
147 浏览

spring-xd - spring xd source moodule 不并行处理文件

我正在开发 Spring XD M7 版本。我创建了一个蒸汽源 | 处理器 | 下沉。我的源文件夹中总共有 5 个文件。当我的流部署时,它正在按顺序处理,其中我有 3 个节点 spring xd 集群配置了 redis。

我的输入源是 xd-admin 节点中的本地文件系统。有什么方法可以配置 spring xd 来并行处理我的文件。

如果我使用分区策略,我可以告诉特定文件转到特定容器。但是,这不是我的要求。

我的源目录中有 5 个文件,我想并行处理文件,因为我有 3 个配置了 redis 的节点 spring xd 集群。

请帮助我。

谢谢,-Suyodha

0 投票
1 回答
628 浏览

spring-xd - Spring XD 工作和 Cassandra

我是春天的新手XD ...

我正在尝试创建一个将读取 csv 文件并使用 spring-data-cassandra 将数据插入 Cassandra 数据库的作业。

在我的批处理项目中一切都很好。我可以打包我的批处理并将其部署到 spring xd 到“/module/job/myjob”(我称之为 myjob)。

在“myjob”目录中有 2 个文件夹:config(带有 myjob.xml)和 lib(带有所有依赖项)。

但是当我尝试在 spring xd shell 中创建我的工作时: job create --definition myjob --name test1

我收到了这个错误:

在 spring-xd 日志中:

我试图把 spring-cql-1.0.1.RELEASE.jar 放在 XD_HOME/lib 中(我不喜欢把罐子放在那里,但它要求我这样做)然后错误改变了:

我肯定错过了一些东西!

更新:如果我将 myjob.xml 放入 $XD_HOME/modules/job 并将 jars 放入 $XD_HOME/lib 它可以工作......

更新 2:现在它适用于 /modules/job/myjob/config|lib。我对必须放入模块库目录的所有 jar 进行了挑选。我现在有另一个问题,那就是性能问题。我将为此发布另一个问题。

谢谢

0 投票
1 回答
390 浏览

spring-xd - 使用 redis 部署 spring-xd 自定义模块

我正在处理我有要求的 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

0 投票
1 回答
310 浏览

rabbitmq - 弹簧 xd 与兔子运输车不接

我正在尝试在 spring-xd 中使用兔子作为我的运输工具。早些时候,我在 servers.yml 中安装了 redis 并配置了 redis 属性,它正在工作。

现在,我搬到了rabbitmq,安装了rabbitmq并能够运行服务rabbitmq-server。我在 servers.yml 中进行了以下更改

但是,当我启动 xd-admin 和容器时,容器仍然以 redis 作为传输器。

Redis 属性在 servers.yml 中注释。

请帮助我。

谢谢,-Suyodha

0 投票
4 回答
1642 浏览

java - spring-xd 如何使用 source:file 逐行读取

我有一个流,可以观察目录中多文件的输出,处理数据并将其放入 HDFS。这是我的流创建命令:

问题是源:文件模块将从文件读取的所有数据发送到日志处理模块,而不是每转一行,因为这样,有效负载字符串有数百万个字符,我无法处理它。前任:

请告诉我在使用 source:file 模块时如何逐行阅读,谢谢!!!