SQL Server 2008 Service Broker 到 MQTT Mosquitto Broker

SQL Server 2008 Service Broker to MQTT Mosquitto Broker

提问人:Ken 提问时间:11/16/2023 最后编辑:Ken 更新时间:11/16/2023 访问量:43

问:

我们有一个旧的 SQL Server 2008 系统,需要与我们的 MQTT 代理 (Mosquitto) 进行通信。 我们打算使用此处概述的触发方法

但是,我对启用 SQL Service Broker 的了解还不够,我需要什么才能让 SQL Service Broker 与 Mosquito Broker 通信。

除了启用 SQL Service Broker 之外,我们还需要什么?

例如,我有一个触发器,有点像网页中的示例

DECLARE @dialog_handle UNIQUEIDENTIFIER;

BEGIN DIALOG @dialog_handle  
FROM insertedData
TO SERVICE 'MosquitoService';  
SEND ON CONVERSATION @dialog_handle (@Message) ; 

我们怎样才能做到这一点? 我们不需要 SQL Server 来接收消息,我们只需要发布消息即可。

sql-server mqtt 服务代理

评论

0赞 Ben Thul 11/16/2023
Service Broker (SB) 只是一个队列(尽管它由事务性 RDBMS 提供支持)。上面显示的是如何将消息放入队列中。在同一文档中,他们概述了如何在本节中将消息从队列中取出。SB 不会联系你的 MSQTT,但 MSQTT 应从 SB 拉取消息。在这个过程中,你是否卡住了某个特定的部分?
0赞 hardillb 11/16/2023
MQTT 代理不会提取任何内容。需要有一个单独的 MQTT 客户端来读取队列,然后发布到 MQTT 代理。
0赞 Ken 11/16/2023
@hardillb我以为 SQL Service Broker 会发布到我的代理。我猜情况并非如此,如果不是,那么我需要什么才能完成从 SQL Service Broker 到 MQTT 代理的发布
0赞 Ken 11/16/2023
@BenThul我以为 SQL Service Broker 会发布到我的代理。我猜情况并非如此,如果不是,那么我们需要什么才能完成从 SQL Service Broker 到 MQTT 代理的发布。
0赞 Ben Thul 11/16/2023
就像我说的,你没有。@hardillb意味着 SB 和 MQTT 之间需要有一些东西才能从前者拉出并推送到后者。不幸的是,我在那里没有任何经验,所以几乎没有帮助。

答:

1赞 David Browne - Microsoft 11/16/2023 #1

您需要编写一个程序,该程序从支持 MosquitoService 的队列中读取并写入 MQTT。

下面是有关如何在 .NET 中从 Service Broker 读取的旧示例:Here's an old sample of how to read from Service Broker in .NET: https://github.com/microsoftarchive/msdn-code-gallery-community-s-z/tree/master/Service%20Broker%20Message%20Processor%20Service%20Sample

评论

0赞 Ken 11/17/2023
因此,我需要从 SQL 代理读取数据,然后编写我自己的发布器以发布到 MQTT 代理 - 这是否总结了它?
0赞 David Browne - Microsoft 11/17/2023
是的。没错。