小编Sco*_*Law的帖子

Camel end vs endChoice - 不是通常的查询

首先,是的,我已经搜索了,是的,我已经阅读了每个人指向的相同的Apache文档.:-)我认为有一些混乱,我想我知道答案,所以让我列举一个我认为正确的例子,按照我认为的答案来做.谢谢.哦,我知道有些endChoice()行并不是绝对必要的,Camel会想出来,但我喜欢干净地描述的块,除非有一些理由不使用它们.

.choice()
    .when(X1)
        // do stuff
        .choice()
            .when(Y)
                //do more stuff
            .endChoice()  // close inner when block
        .end() // close inner choice block
    .endChoice()  // close first outer when
    .when(X2)
        // do other stuff
    .endChoice()  // close second outer when
.end() // close outer choice
Run Code Online (Sandbox Code Playgroud)

所以,我原来看看API,我认为end()用于关闭诸如choice和split之类的东西,而endChoice()用于关闭选择选项,比如when和otherwise.它看起来更像后者实际上是一个返回ChoiceDefinition的end().这使得这个名字好一点.

但是,如果我取出标有'close inner choice block'的end(),这意味着我继续下一行,即endChoice().这会关闭内部选择块吗?鉴于此,when(X2)仍然在when(X1)块内.所以,我认为我需要用endChoice()替换end()而不是删除它.所以结果如下:

.choice()
    .when(X1)
        // do stuff
        .choice()
            .when(Y)
                //do more stuff
            .endChoice()  // close inner when block
        .endChoice() // close inner choice block
    .endChoice()  // close first outer when
    .when(X2)
        // …
Run Code Online (Sandbox Code Playgroud)

java apache-camel

15
推荐指数
2
解决办法
8799
查看次数

mongo 复制设置存储在哪里?

mongo 完全重装后,还记得之前的副本集配置;它把这个存储在哪里?

我使用我们项目的用户帐户在 linux 服务器上安装了 mongo 到该用户拥有的目录中。我设置了复制并让它工作正常。然后,为了测试一些更精细的安装点,我删除了整个 mongo 目录并重新安装。进入mongo,发现replication已经和之前一样设置好了;所以看起来 mongo 将信息存储在某个地方。

我检查了几个可能持有副本集配置的区域:

  1. 首先,在 mongo 目录中,但已删除。
  2. 在一些传统的 linux 结构中可能由 root 拥有,但项目用户没有 root 访问权限和 mongo,由相同的运行,也不应该。
  3. 项目用户的主目录。现在这确实有一个包含命令行历史的 .dbshel​​l 文件,但仅此而已。我没有看到任何其他相关的文件。
  4. mongo 配置中指定的某个位置。但是我在那里只提到了两个路径,一个用于系统日志 ( systemLog.path),另一个用于存储 ( storage.dbPath),并且都指向已删除的 mongo 目录。

有谁知道 mongo 在哪里存储此配置信息?

replication mongodb mongodb-replica-set

1
推荐指数
1
解决办法
3106
查看次数