我希望在启动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
)而管道(|
)也会造成一些麻烦
感谢
答案 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接受以逗号分隔的主机:端口对
字符串