時。我的要求是,如果目標代理不可用,應該保留消息。我選擇了KahaDB作爲持久性適配器,以便消息在代理重啓時倖存下來。ActiveMQ的堅持在磁盤上,我使用Java和ActiveMQ從嵌入式Linux的發送信息只在必要
broker = new SslBrokerService();
KahaDBPersistenceAdapter kahaDBPersistenceAdapter=new KahaDBPersistenceAdapter();
kahaDBPersistenceAdapter.setJournalMaxFileLength(16 * 1024 * 1024);
broker.setPersistenceAdapter(kahaDBPersistenceAdapter);
/** Connector setup code */
broker.start();
即使我已經限制了最大文件大小爲16MB我想ONLY堅持的消息,如果目的地經紀人/消費者不可用。這是因爲限制了CPU和磁盤的使用。例如:產生消息1,嘗試發送消息。如果成功的持久性不應該發生,因爲我不想重新發送已發送的數據(或者應該只發生在內存中)。產生的消息2,3,4但目的地代理不可用,則在磁盤上,使得borker消息不太可能停產將會持續生存的消息。
通過的ActiveMQ文檔來回後,我還沒有找到我的使用情況,所以我問這個偉大的社會,如果我所尋求的其實是任何可能的答案。
我使用的是網絡連接器已與嵌入式代理。我雖然這樣我就不得不爲我的用例構建一個自定義適配器。感謝您的建議 – rpirsc13