在实施了读写分离之后,最开始我们都是手动切换主库或者从库。但是万一主库在半夜出现了故障,那就不一定能够及时发现并且切换了。所以我们用 KeepAlived 做了一个简单的自动主从切换机制,然后在测试环境做过几次演练。
我了解到云服务本身就提供了这种自动切换功能,所以接入了一下。
如果没有自动故障处理机制,是很难达到非常高的可用性的。这个亮点你可以看作是这种理念在数据库这边的应用。
- 为什么要分库分表?
- 分库分表中间件选型,你只需要回答你们公司使用的分库分表中间件的优缺点就可以了。如果你对分库分表中间件没有任何了解,那么无脑使用 ShardingSphere 也行
- 容量规划
- 数据迁移
- 分库分表键选择
- 主键生成策略,并且要能解释清楚这种决策的理由
- 分库分表之后的事务问题,包括在服务层面上解决事务,例如 TCC、SAGA,又或者依赖于分库分表中间件提供的策略,比如说延迟事务。
- 分库分表中一些特殊查询的处理,最主要的就是分页查询。
面试开始的时候你就可以聊聊你实际参与过里面的某个步骤。
我进我们公司的时候,刚好遇上了数据库性能瓶颈,所以我实际参与了我们公司的核心数据库的分库分表,我主要负责的是分库分表中的数据迁移和主键生成部分。
你根据自己实际情况和前面学习的成果来选择。这里说数据迁移和主键生成,是因为单纯从技术上来说它们俩更有竞争优势。不过要注意一点,你要做到对自己负责的部分了如指掌。