Cobar-Server的源码地址:GitHub 欢迎Fork。
官方文档描述Cobar的网络通信模块见下图,
Cobar使用了Java的NIO进行处理读写,NIO是Java中的IO复用,而不需要对每个连接都建立一个处理线程。详细请看 非阻塞I/O–Java NIO教程
Cobar的初始化流程图如下:
在Cobar实例化过程中三个XML配置文件的加载类图关系如下(具体的成员没有标明):
这样Cobar系统就在运行了:
- 每个Processor都启动反应堆的两个线程R和W来处理NIO的输入和输出
- 一个connector线程,处理和后端的MySQL节点连接
- 一个acceptor线程,用于接受来自客户端的连接请求。
- timer任务包括(时间定期更新、定时执行processor检查,用于清理资源回收、数据节点空闲超时 检查、数据节点心跳包、Cobar集群心跳包)