请告诉我将 sql 2012 数据库服务器与 activemq 链接的最佳实践是什么
我想要实现的是,每当数据库中发生某些变化时,我的 ativemq 应该使用一条消息进行更新,该消息具有数据库中发生的变化。
1.那么我应该如何在我的数据库中编码(比如触发器?)。2.数据应该如何发送到activemq?我们需要像 java 应用这样的接口吗?
不要在数据库中执行此操作。在您的应用程序中执行此操作。
虽然 SQL Server 可以托管可以连接到 ActiveMQ 服务器并提交消息的 CLR 过程,但这样做是个坏主意:
一个更好的解决方案是在本地排队,进入您自己的数据库。要么使用表作为队列,要么使用Service Broker 队列(顺便说一句,它支持Activation)。然后,在提交后,从单独的侦听器进程处理这个本地队列。更高的可用性,更少的耦合,更高的吞吐量。如果真的需要 ActiveMQ,至少有一个本地中间队列将可用性解耦。让每个 DB 操作等待外部 ActiveMQ XA 注册操作会降低您的吞吐量(DTC很慢),并且您必须处理可用性问题(没有可用的 ActiveMQ 和 XA,无法在 DB 中进行更新)。