关于OBProxy集群访问地址的疑问

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】
我OBproxy集群下就一个proxy的节点(192.168.18.130:2883),当我创建OBProxy的集群的时候,需要填写的访问地址,IP我也写的是192.168.18.130,但是由于2883本这台机器的proxy节点默认占用了,所以我自定义了端口号为9999,最终关联的实际的业务集群租户的连接串竟然是这个OBProxy的访问地址:

obclient -h192.168.18.130 -P9999 -uroot@sys#jx_business -p

可是通过上述连接串始终无法连接成功,一直在报错!

ERROR 2002 (HY000): Can’t connect to OceanBase server on ‘192.168.18.130’ (115)

于是我开始尝试更换各种连接,最终发现使用OBProxy集群下的节点的IP+端口,可以连接成功

obclient -h192.168.18.130 -P2883 -uroot@sys#jx_business -p

由于我提供的OBProxy集群的访问地址就是其下节点的IP(130),所以区别就是端口不同,9999是集群访问地址需要填写的端口,而2883是Proxy代理节点的默认SQL端口。

所以我现在很困惑,有如下问题,请各位老师指导一下
问题1:这个地址的作用是什么呀?,创建OBProxy集群的时候,这个访问地址必须填写吗?

问题2:他的填写规则是怎样的?这个地址是我写哪台机器都可以吗? 还是必须是集群下的某一proxy节点的IP?还是需要添加一台空闲的主机?

问题3:我个人理解的,是不是这个访问地址是OBProxy集群提供的统一访问入口啊,无论该集群下有多少代理节点,都可以通过这个访问地址统一进行代理访问,而不需要去专门访问某一个节点的IP+端口了。不知道我理解的对不对。可是为什么我配置的这个访问地址无法访问到实际库呢?

问题1: 填写的访问地址,正常是填写VIP,填的是什么访问地址那就会显示什么,不会去校验是否存在。
问题2:因为你只有一个proxy节点,你可以可以直接填你proxy的地址。如果是多个proxy节点,前端是不是得加个负载均衡,提供个VIP,正常就是填这个VIP。
问题3:你理解的是对的,但是前面的负载均衡需要你去配置。比如用F5,云上的elb、clb之类的都可以。

先谢大佬,所以如果需要使用集群的访问地址,那是必须自己搭建负载吧?然后使用虚拟IP负载各个真实的Proxy代理节点是吧?

如果是VIP需要自己绑定到OBProxy Server,你这里用的是同一个IP不同端口,是无法绑定的,OCP不会去做这一层的校验,实际上这里需要提供一个VIP+端口并绑定到这台机器上,其它2个问题你可以参考楼上的回复。

a.关闭负载均衡管理

b.开启负载均衡管理

是的

感谢,已解决