OceanBase 在全部都是全功能副本的情况下,如何尽量避免分布式事务开销 ?

大家好,我们正在使用的是 OceanBase 4.2.2 的社区版,采用的是3个全功能副本的集群模式。

我阅读了官网的以下文章:

不过,对于 OBProxy 配置项 enable_transaction_internal_routing 还有一点不敢完全确认的地方,因此想找各位大神确认一下。

我看这个配置项默认是 true,也就是默认开启的。会将一个事务的多个DML路由到不同的节点。

不过,对于我们目前的情况,3 个副本都是全功能副本(目前每个副本只有一台服务器 ),我们不想因为分布式事务浪费性能,是不是可以关掉这个,将其值改为 false ?没有其他负面影响吧 ?

1.是否是分布式事务是由数据分布决定的,跟obproxy的这个路由功能没啥关联性;
2. obproxy是一个独立的组件,用于给ob路由的,没有obproxy也可以直接连ob,路由功能observer来承担,有了obproxy其实你可以理解为帮observer分担路由压力的。OBProxy 配置项 enable_transaction_internal_routing 默认打开,建议保持默认值就行。

意思是,如果数据没有分散分布在不同节点,OBProxy 也不会故意路由到不同的节点,对吧 ?

好的,谢谢!