mycat多节点组件
2016-04-19 10:31:43 1 举报
Mycat是一个分布式数据库中间件,支持MySQL协议和Oracle协议,并提供了包括主从复制、读写分离、负载均衡、分库分表等在内的一系列数据库集群管理功能。Mycat的多节点组件是指将多个Mycat实例组织成一个逻辑上的数据库集群,以实现数据的高可用性和扩展性。在多节点组件中,每个Mycat实例都可以充当一个独立的数据库节点,它们之间通过心跳机制进行通信和协作,共同维护整个数据库集群的稳定运行。同时,Mycat还提供了多种路由策略和故障转移机制,以确保数据的安全性和可靠性。总之,Mycat的多节点组件是一种强大的数据库管理工具,可以帮助用户轻松地构建和管理大规模的分布式数据库系统。
作者其他创作
大纲/内容
RemoteConfig
远程配置信息 mycat所有配置信息包括:数据库、分片、映射关系、u用户等等
RegistryService
registry(ServiceConfig)unRegistrysubscribegetInstance
ConfigInitializer
初始化配置数据服务
从XML 或 DB加载各种配置
TwoPhaseCommitterManager
两阶段提交管理器serviceFinderexecutorServicecommitResultMap(不同服务 不同提交结果 针对不同服务有不同版本号维护)
doPreparedoCommitdoRollback
MysqlProxyServiceHandler
mysql协议 远程代理接口serviceConfig
invoke 代理方法rpc 远程通信
InvokerCallback
两阶段段提交过程 具体流程回调类
prepareCallbackcommitCallbackrollbackCallback
ServiceConfig
服务配置信息 用于服务注册nodeIdtype 服务类型T 服务实例化对象
+ operation1(params):returnType- operation2(params)- operation3()
SqlServerImpl
初始化配置信息并启动server
InvokerFactoryImpl
远程接口调用者工厂类实现
buildInvoker 生成服务远程代理
只有主节点才能进行两阶段提交
NodeCoordinator
多节点协调接口startstopgetNodeIdgetNodeListisLeadergetLeadernewVersion
ZookeeperRegistryService
zk注册中心
TwoPhaseCommit
两阶段提交接口preparecommitrollback
ServiceFinder
服务发现接口subscribe(Class type)registerunregisterreferencegetProviderList
TwoPhaseCommitTemplateImpl
一个具体服务聚合一个Template对象version 一个服务对应一个contextMap 上下文缓存serviceFindercommitChecker 未完成提交的检查
组件 两阶段提交管理器
RemoteDBPoolService
远程数据源管理服务switchDataSource 集群切换写数据源preparecommitrollback
ManagerServerImpl
管理端口实现类管理端口首选启动 用于机器间的通信先从配置文件(server.xml schema.xml)里加载配置
ZkNodeCoordinator
选举监控节点上下线通过远程配置服务获取配置信息更新mycat配置启动sqlServer
Invocation
远程函数调用信息 用于通信传递type 类名methodargTypes 参数类型args
组件 核心服务
组件 RPC
ZookeeperClient
zk客户端
TwoPhaseCommitTemplate
两阶段提交模板类 抽象了共过过程doPrepare(InvokerContext,InvokerCallback)doCommitdoRollback
RemoteConfigServiceImpl
coordinatormycatServerserviceFindercommitManagertwoPhaseCommitTemplate
组件 rpc服务
每个nodeId对应自己的远程服务,ServiceConfig保存在zk,用于服务发现
ClusterServerImpl
managerServer启动Corrdinator 启动
RemoteConfigService
远程服务配置 用于同步RemoteConfigreload getConfigpreparecommitrollback
InvokerContext
两阶段提交 远程调用上下文leader 主节点nodeIdversion 版本号typeargsargTypesexception
ServiceFinderImpl
registryService 注册中心remoteServiceMap 缓存远程服务
CommitterManager
execute 执行提交getStatus 查询事务执行的结果
ManagerServer
mycat内部管理接口startstop
ServiceNotifyListener
内部类 用于监听服务变更
notify 将invoker的代理缓存到mapbuildRemoteServiceInstance
ClusterServer
mycat 集群服务接口startstop
CommitResult
提交结果 lastFinishedVersion 上一次提交完成的版本号version 当前最近一次提交的版本号status 提交状态(UNFINISH FINISHED ROLLBACK)
SqlServer
mycat 内部核心服务接口startstop
0 条评论
下一页