在实际的开发中,一个端生产的数据可能被多个业务下游所使用,常见的做法就是将生产的数据再写入到消息队列当中。
数据一致性分发当中,需要保证如下几点:
还有,对于生产数据并写入消息队列的过程,如何保证数据生产的事务性。业界有以下几种常见的方法实践
因为 3 步骤可能抖动,导致数据写入 MQ 但没得到确认,所以可能会重发,也就是实现 At Least Once 语义。
相应开源服务:https://github.com/killbill/killbill-commons/tree/master/queue
典型的如消费 Mysql 数据库 BINLOG 来实现分发数据,也是 At Least Once 语义。
相应开源项目: