2

我希望以分布式模式启动 Spring XD(更具体地说是使用 BOSH 部署它)。管理组件如何与模块容器通信?

如果是通过 TCP/HTTP,我肯定必须告诉管理组件所有容器在哪里?如果是通过 Redis,我会认为我需要告诉容器 Redis 实例在哪里?

更新

我试过在一个盒子上运行xd-admin和 Redis,在另一个盒子上xd-container运行redis.properties更新以指向管理框。容器启动时不报告任何异常。

运行示例流提交curl -d "time | log" http://{admin IP}:8080/streams/ticktock不会产生任何一个控制台的输出,也不会输出到日志。

4

2 回答 2

3

如果您使用的是 xd-container 脚本,那么 redis.properties 应该位于“XD_HOME/config”下,其中 XD_HOME 指向您拥有 xd 的 bin、config、lib 和模块的基本目录。

于 2013-06-21T17:12:24.410 回答
1

Admin 和 Container 运行时组件之间的通信是通过消息总线进行的,默认情况下是 Redis。

确保按照文档设置环境变量 XD_HOME;如果不是,您将看到一条日志消息,提示属性文件已正确加载,但未正确加载:

13/06/24 09:20:35 INFO support.PropertySourcesPlaceholderConfigurer: Loading properties file from URL [file:../config/redis.properties]
于 2013-06-21T11:44:17.250 回答