在了解Java交易撮合引擎时看到了Disruptor,印象中美团好像写过相关的文章,所以赶紧来学习一下,顺便重温一下计算机缓存相关的知识。
2025年4月20日大约 3 分钟
在了解Java交易撮合引擎时看到了Disruptor,印象中美团好像写过相关的文章,所以赶紧来学习一下,顺便重温一下计算机缓存相关的知识。
常见数据同步软件:DataX、Sqoop、Maxwell、Canal
框架 | DataX/Sqoop | Maxwell/Canal |
---|---|---|
对数据库要求 | 原理是基于查询,若想通过select查询获取新增及变化数据,就要求数据表中存在create_time、update_time等字段,然后根据这些字段获取变更数据 | 要求数据库记录变更记录,如:MySQL要开启binlog |
数据等中间状态 | 由于是离线批量同步,故若一条数据在一天中变化多次,该方案只能获取最后一个状态,中间状态无法获取。 | 由于是实时获取所有的数据变更操作,所以可以获取变更数据中所有中间状态 |
热点数据隔离:
数据异构(canal)
缓存穿透、缓存击穿、缓存雪崩
热点缓存淘汰策略、多级缓存、布隆过滤器、Null值key
主从、主备
冷(兜底方案)、热备份
Canal中间件
Kafka
RabbitMQ、RocketMQ
版本 3.5.7
基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就会将负责通知已经在Zookeeper上注册的那些观察者作出相应的反应。
Zookeeper = 文件系统 + 通知机制
一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
XA是X/Open组织提出的,定义了事务管理器与资源管理器之间通信的接口协议;XA协议由数据库实现,目前支持XA协议的数据库有Oracle、MySql、BD2等;
一个数据库实现XA协议之后,它就可以作为作为一个资源管理器参与到分布式事务中;
单数据库事务完全遵循ACID规范,属于刚性事务,分布式事务要完全遵循ACID规范比较困难, 分布式事务属于柔性事务,满足BASE理论;
BASE描述: BA(Basic Availability 基本业务可用性)、S(Soft state 柔性状态)、E(Eventual consistency 最终一致性);