【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】8.1.0
【遇到的问题:问题现象及影响】
spring:
datasource:
url: ${TIDB_JDBC_URL:jdbc:mysql://localhost:4000/test}
username: ${TIDB_USER:root}
password: ${TIDB_PASSWORD:}
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
show-sql: true
database-platform: org.hibernate.dialect.TiDBDialect
hibernate:
ddl-auto: create-drop
现有3台物理服务器都部署了TiDB,TIDB_JDBC_URL的ip地址该如何指定,如果指定为其中一个,服务器宕机会不会导致数据无法访问,TiDB有没有负载均衡的处理模式
啦啦啦啦啦
2
tidb上层还需要一个组件保证高可用和负载均衡,比如F5, haproxy,tiproxy之类的都可以
这里有haproxy的最佳实践
https://docs.pingcap.com/zh/tidb/stable/haproxy-best-practices
1 个赞
8.1自带tiproxy,连接tiproxy地址就行
vincentLi
(Ti D Ber X5 H Em4hc)
6
部署tiproxy,然后填写tiproxy的地址。tiproxy是8.1新增功能。此前的版本需要自行安装haproxy,nginx等负载均衡工具,但是有个问题,就是这些负载均衡工具无法解决session共享问题,也就是说,如果后端的tidb server挂了一台,很不巧springboot连的是这台服务器,那么原来正在执行的事务应该都会“丢失”。具体我也没试过,你可以做个实验试试是什么现象。
部署tiproxy,配置tiproxy的地址。也可以用硬件的四级交换机或者软件的nginx配置代理。springboot就配置代理IP地址和端口就可以了。