Camel API中是否提供了嵌入式持久性解決方案?我想保存我的死信信息。它可以通過數據庫或JMS隊列完成,但是我想在發送給客戶端時避免它。
我在'Camel In Action'中閱讀了關於HawtDB的內容。但它似乎與Aggregator EIP緊密結合。
稍後,我想創建一份關於所有死信消息的報告並將其顯示給客戶端。Apache Camel中的嵌入式持久性解決方案可保存無效的消息
回答
您可以使用任何持久性組件來保存您的死信消息(Hibernate,JPA,JDBC,, DB4O等)。在大多數持久性組件的情況下,您不會保存消息本身,而是從中選擇(元)數據(值得注意的例外是使用DB4O組件)。
例如,如果你在郵件中發送Hibernate的實體,您可以使用Hibernate component:
from("seda:deadMessageStore").
setBody().groovy("new DeadMessageLog(request.headers, request.body) ").
to("hibernate:com.foo.DeadMessageLog");
errorHandler(deadLetterChannel("seda:deadMessageStore"));
如果你無法預知你會發送到死信隊列什麼樣的課程,可以考慮使用DB4O component。 DB4O在這方面非常靈活,因爲它允許將任何Java對象存儲在隊列中(沒有顯式映射,就像Hibernate或JPA一樣)。
// store any Java object without transformations
errorHandler(deadLetterChannel("db4o:java.lang.Object"))
也造成嵌入式DB40容器是非常簡單的:
ObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(), DB4OFILENAME);
但他們都將是外部數據庫。不是嗎?我需要請客戶在那裏爲死信信息數據庫創建一個單獨的表。我試圖避免它,並提供駱駝作爲簡單的可插拔解決方案。 –
DB4O允許您存儲到文件系統。與使用SQLLite驅動程序的Hibernate一樣。 –
@HenryKonsek HawtDBAggregationRepository怎麼樣?它現在正在閱讀關於此選項的信息。 –
- 1. JAVA最聰明的嵌入式持久性解決方案
- 2. Gearman持久性存儲解決方案
- 3. Spring Boot嵌入式ActiveMQ持久消息
- 4. Apache Camel消息格式
- 5. 具有持久性消息的低佔位率隊列/消息傳遞解決方案/溢出至磁盤
- 6. Apache Camel:保留已過濾的消息
- 7. 移動PhoneGap的持久性解決方案/ HTML5應用
- 8. 有沒有像Java休眠的C++持久性解決方案?
- 9. 解決方案無效persistence.xml
- 10. Java EE解決方案中的消息傳遞的必要性
- 11. AWS EC2上的Docker持久存儲解決方案
- 12. 快速持久緩存是否有很好的解決方案?
- 13. Java:serverside用於TableModel和TreeModel的持久存儲解決方案?
- 14. wso2esb持久性消息存儲
- 15. C++持久性解決方案(帶有SQL數據庫)?
- 16. iOS最佳性能持久數據解決方案?
- 17. 多個瓶子,單個持久性單元解決方案?
- 18. 使用兵馬俑作爲持久性解決方案
- 19. Grails的消息:沒有這樣的屬性:類:解決方案:
- 20. JSF消息持久性
- 21. 內存/嵌入式數據庫解決方案
- 22. 嵌入式/內存LDAP服務器解決方案
- 23. Oracle Coherence - 持久性方案
- 24. 無效的消息內嵌輸入
- 25. Apache Camel消息範圍
- 26. ActiveMQ的斑點的持久性消息
- 27. Java嵌入式數據庫持久性
- 28. 併發用戶可以通過Apache + PHP解決方案支持
- 29. C#中持久表/網格的正確解決方案不需要完整的數據庫解決方案?
- 30. 卡哈db消息存儲持久性消息
@HenrykKonsek你是那麼慷慨。我一定會向您發送我的Fuse ESB相關的SO問題。 –