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