【问题标题】:Storing event-messages in a SQL-Server table在 SQL-Server 表中存储事件消息
【发布时间】:2023-09-25 09:48:02
【问题描述】:

我有一个创建采购订单的 Web API。 创建此采购订单后,我必须通过该服务的 API 调用向另一个第 3 方 Web 服务确认创建。

在成功创建订单时,我想存储 - 事件/消息 - 以在 Sql Server 表中调用第 3 部分 API。 我倾向于将它们存储为类似 STOMP/STOMP 的格式。

最终,我会让另一个工作人员遍历表中所有存储的事件并触发相应的处理程序以与订阅者进行通信。

如何以最有效的方式将这些事件存储在数据库中?

注意:我暂时不打算使用真正的消息队列。而且我也不希望引发同步事件来调用第 3 方 API。

【问题讨论】:

    标签: c# events asp.net-web-api messages stomp


    【解决方案1】:

    听起来您不想让表架构与消息参数匹配,对吧?也许有很多不同的消息类型,或者它们可能会发生变化。那么你唯一的选择就是以一种或另一种方式序列化它。 JSON 是一种方法,但根据数据类型的不同,可能需要比您想要的更多的存储空间。某种二进制编码会更有效,但会牺牲人类的可读性。

    【讨论】: