我的 sql server 可以在没有任何 java 应用程序的情况下将消息发送到 activemq 服务器吗
Posted
技术标签:
【中文标题】我的 sql server 可以在没有任何 java 应用程序的情况下将消息发送到 activemq 服务器吗【英文标题】:Can my sql server send messages to activemq server without any java app in between 【发布时间】:2013-09-06 17:18:42 【问题描述】:我们使用的是 Sql 2012 数据库服务器。当 db 修改时,我们希望它触发可以使用 activemq 存储在队列中的消息。
-
我们不确定如何编写代码来触发 db 以便它发送消息。
我们可以直接让db生成的消息在activemq中排队,中间不需要任何java接口。我想知道我们是否能做到这一点。
3.有没有其他方法可以建立sql server和activemq之间的通信,比如数据库服务和activemq服务(activemq有没有)
PS 我是activemq 的新用户。感谢任何解决这些问题的线索。
【问题讨论】:
相关:***.com/questions/13820199/… @DavidBrabant 根据this link 说“另一方面,像 ActiveMQ 这样的面向消息的中间件是为处理这些用例而构建的。”这是可能的 @DavidBrabant 我们可以实现第 3 点吗?我也觉得根据帖子,会有太多问题需要处理,但有可能做到吗?答案可能是肯定的。 【参考方案1】:请不要像 SQL Server 那样做这个。 SQL Server 旨在存储数据。你要求太多了。根据您要从多少个地方添加到此队列中,我会选择以下解决方案之一:
如果您想从一堆不同的地方添加到此队列,并且不想更改现有代码,请创建一个应用程序将项目从 SQL Server 移动到 ActiveMQ。 SQL Server 中的项目可以由触发器填充。
如果只有少数几个地方添加到此队列,则将该逻辑添加到应用程序,以便每次写入 SQL Server 时也会写入 ActiveMQ。
如果你实在不想修改任何代码,可以configure ActiveMQ to use SQL Server as its persistence database。然后你可以修改它的数据并希望它玩得很好。这绝对不是可取的。我宁愿把 CLR 代码放到 SQL Server 中,将数据推送到 ActiveMQ。
【讨论】:
不想投反对票,因为第 1 点和第 2 点是正确的,所以您永远不应该修改 ActiveMQ 存储中的数据并希望获得最好的结果。这样做是对封装的严重违反。 @John Tseng 感谢您的回复。到目前为止,我们有一个单一的数据库,我们正在尝试将它与 activemq 链接起来。所以我想我们已经按照您在第 2 步中提到的内容进行了操作。所以您所说的应用程序将是服务器和活动 mq 之间的接口。如果我错了,请纠正我。以上是关于我的 sql server 可以在没有任何 java 应用程序的情况下将消息发送到 activemq 服务器吗的主要内容,如果未能解决你的问题,请参考以下文章