腾讯公开课

数据和缓存一致性

业务:修改数据库,发送消息,通过消息保证一致性;事物性消息,消息表
通过mysql订阅binlog,更新redis换成
redis做持久层:在腾讯前没有,取决于可靠性要求,成本控制(AOF RDB很多时候不开的)
本地缓存:维护麻烦,很高的实现门槛、变更麻烦;配置中心 热key分散下去
热Key:jehotkey

AOF RDB: 通常AOF RDB做冷备份(每天运维搞)

分布式事物:交易会有,互联网业务级别有更多优雅的手段,通常不用;分布式事务消息、TCC、事物消息表、异步确定机制,最终一致性、对账;大部分情况容忍最终一致性即可
订单:小单中 支付中 已支付 都是软状态
大key拆分小key,大表拆小表

消息一致性

在分布式系统中,本地消息表(Local Message Table)是一种用于保证消息可靠性和一致性的机制。它通常用于异步消息传递系统中,例如分布式事务、分布式锁等场景。
本地消息表是指在每个节点上维护的一张本地表,用于存储发送的消息和消息的状态信息。当一个节点发送消息时,它会将消息写入本地消息表,并将消息状态设置为“待确认”或“已发送”。当接收方收到消息后,会发送确认消息给发送方,发送方根据确认消息更新本地消息表中的消息状态。如果发送方在一定时间内未收到确认消息,或者收到了确认消息但消息状态未被更新,就会重新发送该消息,确保消息被成功处理。
本地消息表的优点是可以将消息的可靠性和一致性保证在节点本地进行,避免了网络通信的延迟和不可靠性对消息可靠性的影响。同时,本地消息表还可以支持一些高级特性,例如消息重试、消息回溯、消息补偿等,提高了分布式系统的可靠性和稳定性。
需要注意的是,本地消息表只能保证本地消息的可靠性和一致性,如果涉及到多节点之间的消息传递和一致性保证,还需要使用分布式事务、分布式锁等机制来保证全局一致性。
Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP