什么是DCS
DCS,全称Dabase Connectivity Services,是Trafodion中的分布式的,ODBC/JDBC连接组件,基于Apache ZooKeeper。
DCS是一个通过Trafodion中的MXOSRVR进程来连接基于ODBC/JDBC 4 Type类型的客户端。客户端在指定端口向DcsMaster发起连接请求,DcsMaster去Zookeeper中去查找可利用的DcsServer用户进程MXOSRVR并返回一个指定对象给客户端,然后客户端就可以直接通过连接MXOSRVR进行通信。
DCS架构
DCS主要特征如下,
- 轻量级的进程管理框架
- 基于Java NIO的高性能客户端监听器
- 配置启动相对简单
- 高可用和高可扩展的Trafodion连接服务
- 使用ZooKeeper来进行协调处理和进程管理
- 嵌入式的用户接口用来检查状态,日志及进程状态
- 独立的REST服务
- 纯Java开发
DCS架构图如下,
DcsMaster
DcsMaster是Master的具体实现。DcsMaster负责监听来自客户端的连接请求,并且负责监控集群中所有的DcsServer实例的状态,如果某个DcsServer失败了DcsMaster负责重启DcsServer。DcsMaster通过/bin下面的一个脚本启动,在启动过程中它会把自己注册到ZooKeeper中。如果DcsMaster是作为Backup启动的话,在注册ZooKeeper之后它会等待成为下一个DcsMaster Leader。
DcsServer
DcsServer是Server的具体实现。DcsServer负责启动并保证MXOSRVR的正常运行。DcsServer也是通过/bin下面的一个脚本启动,在启动过程中也会把自己注册到ZooKeeper中。如果DcsMaster挂了,DcsServer仍然可以正常运行,但由于DcsMaster控制DcsServer的失效复原,所以当DcsMaster挂掉的时候还是要尽快重启Master。