在启动时/通过脚本创建流

时间:2014-07-08 10:36:20

标签: spring-xd

我希望在启动spring-xd容器时创建一个流,而不必通过xd-shell手动输入它。我想要; 1.有xd-singlenode启动(通过bash调用) 2.在容器启动后部署预先创建的流定义(例如http --port=8080 | file

我知道有一个url要调用(curl -POST http://127.0.0.1:9393/streams?name=mystream&definition=http|file)但是我在指定其他配置时遇到麻烦(比如--port=8080)而管道(|)也会造成一些麻烦

感谢

2 个答案:

答案 0 :(得分:2)

所以答案是您可以将参数(流配置)作为命令行参数传递

xd-shell --cmdFile [filename]

命令文件的内容是您通过shell输入的内容,因此您可以执行此操作

xd:>stream create --name teststream --definition "http | file" --deploy
你会写一个这样的文件

stream create --name teststream --definition "http | file" --deploy

以此为例;

xd-shell --cmdFile stream.cmd

所有这些都可以从shell调用

答案 1 :(得分:2)

另请参阅https://github.com/spring-projects/spring-xd/tree/master/src/test/scripts您应该找到使用curl的类似示例。

另请注意,如果您使用外部ZooKeeper集合(即操作配置)运行,则无需执行此操作。 ZK在重新启动时会保留并恢复XD群集状态,因此在启动时将部署在关闭时部署的任何流。单个节点默认启动嵌入式ZK服务器,但可以配置为连接到外部服务器。例如,

export JAVA_OPTS=-Dzk.client.connect=localhost:2181

zk.client.connect接受以逗号分隔的主机:端口对

字符串