Skip to content

Latest commit

 

History

History
39 lines (34 loc) · 7.13 KB

File metadata and controls

39 lines (34 loc) · 7.13 KB

测试用例

用例 测试类型 预期结果 测试结果
常规select/delete/update/insert 功能 sql正确执行 通过
多条sql的事务 功能 sql正确执行,事务正确提交 通过
多条sql的事务,执行过程中出现异常 功能 事务正确回滚,且连接可以被复用 通过
sql-proxy返回异常,如用rename表来模拟 功能 请求报错,且连接可以被复用 通过
sql-proxy扩缩容(操作etcd/nacos等) 功能 sql正确执行
扩容后,连接逐步均衡到所有sql-proxy
缩容后,连接逐步均衡到剩余所有sql-proxy
通过
sql-proxy宕机1台,10分钟后拉起 异常 业务短暂报错后恢复正常,故障sql-proxy被标记为不可达,重新拉起后,重新被标记为可达,且流量重新均衡到该节点 通过
sql-proxy断电1台 异常 短暂报错后自行恢复
断电情况下,tcp的fin包不会发到客户端,此时lb-driver不应该被hang住
请求需要触发底层tcp的sockettimeout异常,并且能被正确的标记为sql-proxy不可达
通过(通过关闭云主机来模拟)
某台sql-proxy网卡延时1s、20s 异常 设置socketTimeout为10s,则延时1s的会导致请求变慢,延时20s的会请求超时,请求超时的节点应该被判定为不可达而自动排除掉 通过
某台sql-proxy进程hang住(kill -19) 异常 业务短暂报错后恢复正常,因为该节点被判定为不可达 通过
访问某台sql-proxy网卡丢包100% 异常 业务短暂报错后恢复正常,因为该节点被判定为不可达 通过
所有sql-proxy节点宕机,5分钟后逐台拉起 异常 宕机后业务异常,重新拉起后业务自行恢复且流量均衡 通过
config-server宕机1台 异常 有短暂报错,随后自行恢复,但是业务流量无影响
业务重启无影响
通过
config-server宕机全部 异常 有持续报错,但是业务流量无影响
业务重启会失败
通过
config-server一个节点hang住(kill -19) 异常 有短暂报错,随后自行恢复,但是业务流量无影响
业务重启无影响
通过
config-server一个节点丢包100% 异常 有短暂报错,随后自行恢复,但是业务流量无影响
业务重启无影响
通过
etcd宕机1台 异常 config-server有短暂报错,随后自行恢复,但是业务流量无影响
业务重启无影响
config-server重启无影响
通过
etcd宕机全部 异常 config-server有持续报错,但是业务流量无影响
业务重启无影响
config-server重启失败
通过
etcd一个节点hang住(kill -19) 异常 config-server有短暂报错,随后自行恢复,但是业务流量无影响
业务重启无影响
config-server重启无影响
通过
etcd一个节点丢包100% 异常 config-server有短暂报错,随后自行恢复,但是业务流量无影响
业务重启无影响
config-server重启无影响
通过
etcd错误配置,json格式错误 异常 config-server报错,但是业务流量无影响
业务重启无影响
config-server重启失败
通过
etcd错误配置,json格式正确,里面的节点有一个错误 异常 config-server报警,但是业务流量无影响
业务重启无影响
config-server重启无影响
通过
etcd错误配置,json格式正确,里面的节点全部错误 异常 config-server报警,但是业务流量无影响
业务重启失败
config-server重启成功,但是实际不可用
通过

备注

  • lb-driver定时检查连接数是否在各个sql-proxy中平衡,如果不平衡,则会尝试rebalance
  • lb-driver定时检查sql-proxy是否可达(通过建立一个jdbc连接来判断),如果不可达,则不再分配
  • lb-driver定时从config-server获取sql-proxy节点列表,和本地配置进行比对,diff后,先增加,后减少
  • lb-driver新增sql-proxy时,会判断是否可达,如果不可达,则虽然加入列表但是不对外分配,在定时检查任务中如果发现可达,则会对外分配
  • lb-driver减少sql-proxy时,会判断剩余sql-proxy是否为空或者已无可达节点,如果是,则跳过本次操作
  • config-server从etcd/nacos获取配置时,会校验格式,如果校验失败,则跳过,如果校验成功,则更新本地配置
  • config-server会校验etcd/nacos获取到的sql-proxy节点是否telnet能通,如果不能通,则会打印日志/报警,但是不影响下发lb-driver
  • 以上测试基于druid连接池,如果druid连接池版本大于等于1.2.21,需要设置LbdDruidFilter才行