TiDB Server的读写分离方案

【 TiDB 使用环境`】测试环境
【 TiDB 版本】V5.4
【遇到的问题】
[tidb@test11 ~]$$ tiup cluster display tidb-tianze

[tidb@test11 ~]$ mysql -uroot -h10.172.32.101 -P4000 -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 135
Server version: 5.7.25-TiDB-v5.4.0 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MySQL [(none)]> show databases;
±-------------------+
| Database |
±-------------------+
| INFORMATION_SCHEMA |
| METRICS_SCHEMA |
| PERFORMANCE_SCHEMA |
| mysql |
| test |
±-------------------+
5 rows in set (0.00 sec)

MySQL [(none)]>
这里TiDB Server :10.172.32.101\10.172.32.102\10.172.32.103 三节点都可以对外提供读写。
在实际生产中,如何做负载均衡,或者读写分离。哪种方案应用比较多,例如中间件MySQL Router

可以参考下面的文档

1 个赞

1、TiDB中 Tidb-server是无状态的,多个tidb-server 可以做负载均衡(可以使用ha+keepalive做高可用);
2、读写分离
Tidb本身的存储基于region分布式存储的, 所以就tikv来说无需考虑读写分离。
如果是TP和AP的分离 可以参考上面 的 [专栏 - 通过 ProxySQL 在 TiDB 上实现 SQL 的规则化路由])

1 个赞

tidb 本身设计为存算分离架构,每个存储节点都负责读写功能。
负载均衡可以考虑前端加入f5等设备,做负载均衡。

若同是tp应用.只是因为操作就近的原则,想要划分tidb,tikv的操作区域,有什么好的方案吗?

tikv无法读写分离

tidb server负载均衡需要前端配置负载均衡,如haproxy/lvs/F5等。单集群内没法读写分离,HATP结构下写到tikv内,读可以走tiflash,tikv同步到tiflash可能有延迟。 默认tikv内是leader提供读写服务,tidb 有follower read特性可以读时不走leader,从follower region读,这样可以把读进一步分散到各tikv,不过是强一致性读,有延迟的话会影响吞吐量

使用Haproxy

tiflash可以做olap。tikv是oltp。只能从这个角度上来说读写分离。

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。