誰能告訴我是否可以將數據從SqlServer觸發器直接推送到ActiveMQ。是否可以將SqlServer觸發器推送到ActiveMQ
我已經通過ActiveMQ文檔搜索,並沒有看到任何對它的引用。我們可以使用服務輪詢DB插入,但觸發器將是理想的解決方案。
誰能告訴我是否可以將數據從SqlServer觸發器直接推送到ActiveMQ。是否可以將SqlServer觸發器推送到ActiveMQ
我已經通過ActiveMQ文檔搜索,並沒有看到任何對它的引用。我們可以使用服務輪詢DB插入,但觸發器將是理想的解決方案。
但是觸發將是理想的解決方案
絕對不是。有很多原因,這是一個壞主意,但我會給你主要的:
其中一些可以通過在分佈式事務(2PC)中與應用程序事務一起在隊列系統中註冊來解決, XA for ActiveMQ。這解決了最後一個問題,但代價是增加了嚴重的延遲並將吞吐量降低了幾個數量級。
提倡的解決方案是讓觸發器在本地排隊在table used as a queue中,並有一個外部應用程序從此表中解除並推送到ActiveMQ。不要偷工減料並將你的應用程序狀態用作「隊列」(即輪詢狀態並將其標記爲「已處理」),這就是爲什麼99%的'數據庫隊列'嘗試失敗的原因。
你仍然不能夠解決一些當你從隊列存儲(無法在故障切換HA/DR做一致的備份/恢復,「分裂大腦」拆分您的數據存儲所固有的問題因爲排隊不會遵循數據庫故障轉移等),但是隻有在數據庫中嵌入排隊和消息傳遞時才能解決這些問題,如Service Broker。