前言
作为一个房地产公司,现在整体业务都没有前几年好,公司整体都需要控制成本,技术上也开始开源节流。此项目之前整包买的服务,供应商使用了SQLserver数据库,现在项目进行自研,数据库从商业转换为开源免费产品。
为什么选TiDB
选型总是个复杂繁琐过程,考虑研发成本和运维成本,重要的是后期性能和稳定性。开始我们测试了两个方案,有TiDB+tiflash、MySQL+Elasticsearch,SQLserver承载着oltp和olap的业务,测试的两个方案中后者效率上优于TiDB,但TiDB+tiflash也完全满足现在业务,部分oltp场景对延时要求高,不能超过5分钟,公司使用TiDB已一年时间使用和维护上积攒了很多经验,选择使用TiDB方案。迁移TiDB对部分场景进行了SQL调整。
如下三个复杂场景测试对比表格:
硬件配置:
节点名称 / 数量 / 配置 / 用途
Tidb+pd / 3 / 16c64g / 计算管理节点
tikv / 3 / 32c128g / kv存储节点
tiflash / 1 / 64c128g / 列存储节点
SQLserver / 3 / 64c198g / 存储服务器
压测对比:
上图看出优化后TiDB响应时间比在SQLserver里好很多,测试的三个场景复杂且重要,但并发不高,测试时也没做高并发测试。
迁移过程
上图架构链路比较长,因为SQLserver发布到订阅比较麻烦,主要描述这个过程,下面主要介绍下SQL数据分发订阅过程。
架构配置说明:
a. SQLserver共三台主机,使用的AlwaysOn高可用架构。
b. 发布服务器是数据的来源服务器,维护源数据,决定哪些数据将被分发,检测哪些数据发