Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何保持数据库表和发送消息状态的一致性?_Database_Architecture - Fatal编程技术网

Database 如何保持数据库表和发送消息状态的一致性?

Database 如何保持数据库表和发送消息状态的一致性?,database,architecture,Database,Architecture,我有一个数据库,其中有一个要发送的消息表。Spring引导服务从中读取并发送。该服务可以扩展到n个实例。 当然,服务可以上下浮动,实例可以并行工作 如何保持此系统的一致性: 需要发送的消息(在表中标记为已发送) 尽量不要多次发送一条消息 我知道有至少一次和最多一次方法。如果偶尔一些客户端会收到两次相同的消息,但希望减少这种情况的数量,这并不是那么糟糕 我也知道在《卡夫卡》11中有一个的可能性,但我不想在这里涉及卡夫卡 不可能在一个事务中读取表并发送消息。但可以创建一个额外的表(log)并将其置于

我有一个数据库,其中有一个要发送的消息表。Spring引导服务从中读取并发送。该服务可以扩展到n个实例。 当然,服务可以上下浮动,实例可以并行工作

如何保持此系统的一致性:

  • 需要发送的消息(在
    表中标记为已发送)
  • 尽量不要多次发送一条消息
  • 我知道有
    至少一次
    最多一次
    方法。如果偶尔一些客户端会收到两次相同的消息,但希望减少这种情况的数量,这并不是那么糟糕

    我也知道在《卡夫卡》11中有一个
    的可能性,但我不想在这里涉及卡夫卡

    不可能在一个事务中读取表并发送消息。但可以创建一个额外的表(log)并将其置于状态(如:read、sent、in_process)

    有什么解决方案或方法吗