目前tidb server的负载均衡使用haproxy、lvs类的代理软件,请求经过代理软件转发,增加了故障点和维护工作,是否可以考虑增加一个连接请求重置的代理组件或功能,类似于oracle的监听功能。
1、 代理组件通过tiup工具部署,支持vip切换管理,提供高可用。支持多种负载均衡策略
2、 应用连接组件VIP,然后根据负载均衡算法选择一个tidb server将连接重置到该tidb server,后续应用和tidb server直接建立连接。
weir 太重量级了,看能不能裁减一下 …
感谢大佬,看了下tug上的伴鱼文章,这个看起来还是一个中间件,我的想法是尽可能简单,代理组件除了处理连接建立请求,其他都不处理,最终达到应用和tidb server直连的状态。 增加中间件后管理维护比较麻烦,如果做成tidb的组件的话可以省掉很多代理软件选择、维护过程,由tidb管理维护起来可能会更简单
mysql的jdbc客户端支持如下配置:
https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-usagenotes-j2ee-concepts-managing-load-balanced-connections.html
类似: jdbc:mysql:loadbalance://[ host 1][: port ],[ host 2][: port ][,[ host 3][: port ]]…[/[ database ]] » [? propertyName1 = propertyValue1 [& propertyName2 = propertyValue2 ]…]
按照文档说是每个服务器负载的,我没有测试过,看看能不能提供一种思路。