【问题标题】:Unexpected deployment behaviour of Camel routes in Karaf卡拉夫骆驼路线的意外部署行为
【发布时间】:2016-02-03 15:30:23
【问题描述】:

所以,我确实安装了一个带有根实例和两个子实例的 Apache Karaf 3.0.4。第一个孩子是生产性的,另一个是从那个克隆出来的,用于测试环境。 两个子实例都通过包装器作为 Windows 服务运行,根停止。 这些实例用作一些 Apache Camel 路由的运行时,这些路由编译为 OSGi 包作为 jar 文件。通过将捆绑包复制到相应实例的部署文件夹来部署捆绑包。

我的问题是,如果我要部署到任一实例,捆绑包也将安装到另一个实例。

例如, 我在 prod 中运行 1.0.0,在测试中运行 1.0.1-SNAPSHOT 和 我正在取消部署 1.0.0 并将 1.0.1 部署到 prod 结果是,prod 是 prod 正在运行 1.0.1 - 正如预期的那样 - 并且 test 将运行 1.0.1-SNAPSHOT 1.0.1 的发布。

有人能指出导致这种行为的原因吗?它与作为克隆的测试实例有关吗?有什么需要检查的配置吗?

提前致谢,h。

【问题讨论】:

  • 他们不是以某种方式共享同一个部署文件夹吗?
  • 其实这就是所显示的行为所暗示的。但是每个实例都有自己的文件夹结构,文档另有说明karaf.apache.org/manual/latest/users-guide/instances.html
  • 真正的问题是,是否有办法改变这种行为。
  • 嗯,奇怪,尝试在 Karaf 开发者和用户活跃的 Karaf nabble 论坛上发布此内容。

标签: deployment apache-camel multiple-instances apache-karaf


【解决方案1】:

我尝试重新创建您的场景。 实例:创建产品 实例:克隆产品测试 实例:列表

测试实例似乎与 prod 具有相同的 ssh 端口。它似乎也使用相同的 KARAF_BASE 目录。所以它也使用相同的部署文件夹。

我认为你不应该使用克隆来创建测试实例。

【讨论】:

  • 是的,在同一个 karaf 安装中混合 prod 和测试的设计真的很糟糕
  • 感谢您的反馈。当然,我确实更改了端口(ssh、RMI-registry 和 RMI 服务器)。所以这不是重点。除了这可能是一个糟糕的设计决定之外,我最初的问题仍未得到解答:这种行为是故意的吗?
  • 顺便说一句:我认为您对他们共享 KARAF_BASE 目录的看法是错误的。这是在 *-wrapper.conf 中配置的,并且指向正确的位置。无论如何,我要分离测试环境。
  • 您能否尝试在不从 prod 克隆的情况下创建测试实例。我认为这应该会更好。如果这也不起作用,那么它可能是 Windows 上 karaf 中的错误。 linux和windows实例的启动脚本看起来很不一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-22
  • 2019-06-15
  • 1970-01-01
  • 1970-01-01
  • 2017-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多