在我们的组织中,我们有一个SQL Server 2005数据库和相当数量的数据库客户端:网站(php,zope,asp.net),富客户端(传统狐狸专业版).现在我们需要将核心数据库中的某些事件与其他系统(MongoDb,LDAP和其他系统)一起传递.消息传递范式似乎非常能够解决这类问题.所以我们决定使用RabbitMQ代理作为中间件.
最初从数据库中消耗事件的问题似乎只有两种可能的解决方案:
由于涉及定期执行sql时出现的延迟问题,我不喜欢第一个想法.
但基于事件的触发方法存在一个目前无法解决的问题.考虑这种情况:
除非回滚写入数据的事务,否则一切正常.在这种情况下数据将是一致的,但该消息已被发送,并因为在写入数据库日志,而不是在交易发生时的瞬间触发火灾承诺不能被回滚(这是一个RDBMS的正确行为) .
我现在意识到我要求太多的触发器,它们不适合处理数据以外的任务.
所以我的问题是:
提前致谢!
在我们的应用程序中,我们需要将某个 postgresql 表中的事件发布到 Kafka 中,因此我们决定使用 Debezium,但遇到了以下问题:在初始快照期间,消息以意外的(从我们的角度来看)顺序显示在 Kafka 中。事件的顺序对于我们的应用程序至关重要,实际上它们必须按表的整数主键排序。AFAIK 初始快照只是表中的 SELECT,没有 ORDER BY。那么有没有一种方法或解决方法可以使Debezuim postgresql 连接器按特定顺序提取事件?
提前致谢!