【问题描述】
以下是我理解的:
如果选择使用ob-configserver,observer容器化ip变化的问题,会在变化后推送给ob-configserver,实现元数据变化的同步,obproxy再获取最新的CONFIG_URL来路由。
但是就对ob-configserver 产生了强依赖,这个组件对集群高可用产生了影响。
而且文档上这个组件默认元数据存储使用sqlite,不持久化,导致没办法多副本,重启后还有数据丢失问题。如果使用mysql,又存在依赖更多中间件问题,整个集群复杂度不断上升。
如果不使用ob-configserver,使用rs_list,文档中明确说了:当 OceanBase 数据库中 Root Service 列表有变动时,需手动更新 rs_list
配置项,并重启 ODP 使变动生效。显然针对容器化ip会变化的场景 不适用。
总结就是:容器化环境下 必须使用ob-configserver,为了简化架构结构,使用sqlite还要改成单副本持久化模式。ob-configserver 如果异常没有成功拉起导致整个集群不稳定。
请问我理解的这方面是否正确,有无这方面的尴尬问题?
另外问一下,obproxy 能否也成为可选项,外置LB直接负载均衡observer1、2、3,会有什么问题?
1 个赞
淇铭
#3
默认是sqlite类型 可以修改 使用ob mysql类型
-
database_type
:数据库类型,提供 sqlite3
与 mysql
,默认为 sqlite3
类型,推荐使用 mysql
类型。
-
connection_url
:数据库连接 URL。选择 sqlite3
类型时默认为 $home_path/.data.db?cache=shared&_fk=1
;选择 mysql
类型时,connection_url
可以是 OceanBase 数据库,也可以是原生 MySQL。指定的数据库用户需要有 URL 里对应库 DDL 和 DML 的权限,需注意的是,使用 OceanBase 数据库时这里的库名请勿使用 oceanbase 库,否则会提示没有权限。
obproxy和LB 功能不一样 obproxy有sql路由功能 简单的解析 路由到哪个observer上
1 个赞
没有回答到我想问的 点上。麻烦再给解答一下。
- 容器化observer ip会变化的问题,必须使用ob-configserver ,是否?
- ob-configserver不高可用影响ob集群的稳定性。 是否?
- 保证ob-configserver 高可用性,那就必须依赖mysql走持久化。 是否?
集群复杂度先不说,我都用国产数据库了,又要依赖一个mysql,是不是尴尬?
1 个赞
淇铭
#5
1、是的2、我在问一下相关的同学 给你准确的答案3、可以使用ob mysql模式或者mysql
1 个赞
淇铭
#6
2、ob-configserver不能集群部署 本身configserver高可用的要求不是很高 一个就可以管理很多集群 如果是生产环境的话 ob不建议使用容器化部署