2012-11-04 123 views
2

我是Apache Camel的新手,並計劃在Grails應用程序中實現File Poller以部署在兩個節點的Jboss集羣中。Jboss集羣中的Apache Camel

我打算使用Grails路由插件來包含Camel。

問題是,由於它是一個集羣環境,我們將有兩個駱駝上下文正確 (每個節點中有一個)?如果是這樣,那麼兩者將具有相同的路線。當源文件夾中存在文件時,兩個駱駝上下文是否都會嘗試處理該文件?我不希望兩個節點嘗試處理文件並導致失敗的情況。我只希望該文件只能由一個駱駝上下文和路由處理。我是否需要做特殊的事情來處理這種情況,或者駱駝有能力在集羣中工作?

回答

1

你可以運行你的駱駝上下文作爲一個JBoss羣集單身人士。

========================================

對不起,在手機上回復。這裏有一些更多的信息。

這並不是說你無法在集羣中的每個節點上運行駱駝上下文(可以),但是如果所有節點都在觀察同一個文件系統,並且不希望他們爭執誰來處理這些文件放在目標目錄中,最好的辦法是一次只運行一個上下文實例。

由於您已經在運行jboss集羣[我認爲],因此HA Singleton模型似乎非常適合您。它只會在一個實例上運行駱駝上下文,但如果該實例失敗,另一個節點將啓動上下文,因此您總有可能運行上下文。

反正看東西。或者,您可以爲羣集中的每個節點指定不同的文件掩碼,以便每個上下文只會選取與指定的文件掩碼相匹配的文件。

+0

非常感謝Nicholas。那麼這是否意味着我們無法在集羣中運行camelContext?我所需要的只是文件應該在任何給定的時間點由唯一的上下文處理..你能解釋一點嗎?我對駱駝真的很陌生。 – VimalKumar