浏览 2575 次
锁定老帖子 主题:Katta源码分析(1)--显示节点
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-14
看源码,老实说我没什么很好的方法。所以,只能静下心来看,一步一步的看。 我认为每个程序都有个门,要想进入,首先得把这个门找到,而我找到的katta的门是Katta.java Katta.java中有个main方法,接收你输入的命令(String[] args) 1.startNode 2.startMaster 3.version 4.zk 5.search 6.addIndex 7.removeIndex 8.mergeIndexes 9.listIndexes 10.listNodes 11.showStructure 12.check 13.listErrors 14.redeployIndex 如果想要知道有多少个节点已经连接了,那么输入listIndexes main方法先判断是否有值输入,如果没有调用printUsageAndExit(),给出输入的格式并退出程序。 现在当然是有输入咯,然后就是要Katta显示所有节点了,它调用Katta的构造函数 katta = new Katta(); Katta的构造函数,它调用了ZkConfiguration ,ZKClient的构造函数。 public Katta() throws KattaException { final ZkConfiguration configuration = new ZkConfiguration(); _zkClient = new ZKClient(configuration); _zkClient.start(10000); } ZkConfiguration 它继承了KattaConfiguration类,KattaConfiguration类是一个配置类,它读取katta.zk.properties 文件,生成Properties,方便下一步的读取操作。 ZKClient它实现了Zookeeper的Watcher,Watcher是一个事件处理程序的接口。 _zkClient = new ZKClient(configuration); 在ZKClient的构造函数中,把configuration作为参数传了进去,然后读取katta.zk.properties这个文件的 zookeeper.servers,zookeeper.timeout和zookeeper.clientPort _zkClient.start(10000); 打开一个Zookeeper的客户端,并等待Zookeeper服务器的连接。 使用同步的机制, getEventLock().lock(); 调用ZooKeeper的构造函数: ZooKeeper _zk = new ZooKeeper(_servers, _timeOut, this); 把从katta.zk.properties这个文件中读取的服务器名,超时时间和Zookeeper它本身作为参数传入这个构造函数。 在Zookeeper的构造函数中又调用了ClientCnxn 的构造函数 ClientCnxn cnxn = new ClientCnxn(host, sessionTimeout, this); ClientCnxn 为客户端管理socket的i/o,并保持一份可用的服务器连接。 在ClientCnxn的构造函数中调用了两个线程,SendThread和EventThread SendThread 这个类服务那些即将离任的请求队列。 EventThread 这个类服务于返回的信息事件。 当ZooKeeper的状态为CONNECTED时说明已经连接。 katta实例调用它的listNodes()方法以显示节点 在listNodes()方法中,调用ZKClient的getKnownNodes()方法,返回一个List对象。 NodeMetaData nodeMetaData = new NodeMetaData(); Katta把节点信息封装到NodeMetaData 对象中。 Table table = new Table(); table.addRow(nodeMetaData.getName(), nodeMetaData.getStartTimeAsDate(), nodeState.name()); 把需要显示的数据封装到Katta的Table中 System.out.println(table.toString()); 显示出来。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-04-14
希望能继续更新。。。期待ing。。。
|
|
返回顶楼 | |