20、本地编译zookeeper源码、eclipse导入zookeeper源码

心血来潮,想看看zookeeper源码

学习一下人家怎么编译  https://www.jianshu.com/p/7ee757d6a08a   

http://zookeeper.apache.org/    【官网】

https://cwiki.apache.org/confluence/display/ZOOKEEPER/UsingEclipse    【confluence教程】

1、从github  fork到自己的git上  https://github.com/gemeiren/zookeeper

2、本地的机器环境  JDK7   apache-ant-1.9.13

https://ant.apache.org/bindownload.cgi    


3、

  • 使用:ant eclipse命令   编译报错,https://blog.csdn.net/nysyxxg/article/details/78503412
  • 本地的解决方案是 直接将下载依赖文件的 https协议改为http
  • build.xml    、   ivysettings.xml
  • 依赖下载没问题,但是JDK编译报错,修改JDK版本。【build.xml 



4、最后成功


5、导入eclipse



6、项目报错 注意用JDK7 编译、本地的jre是7等



7、最后项目无报错了。

8、提交代码到自己的git上。。。。

9、运行本的zookeeper时,发现JDK版本跟jetty的对不上。【https://blog.csdn.net/freegf/article/details/47004347】

所以一开始就应该用jdk8来编译。如今只能在eclipse改为JDK8的JRE、编译

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/eclipse/jetty/server/Connector : Unsupported major.minor version 52.0


10、org.apache.zookeeper.server.ZooKeeperServerMain    运行时发现控制台没打印日记配置了一下绝对路径【http://fanrey.iteye.com/blog/1683137】



11、运行服务端: /ZooKeeper/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMain.java

配置:D:\\Developer\\CODE\\dubbo_20180624\\zoo.cfg

-Dlog4j.configuration=file:/D:/Developer/CODE/dubbo_20180624/zookeeper/conf/log4j.properties

运行 客户端: /ZooKeeper/src/java/main/org/apache/zookeeper/ZooKeeperMain.java 

配置:-server 127.0.0.1:2181 get /root

-Dlog4j.configuration=file:/D:/Developer/CODE/dubbo_20180624/zookeeper/conf/log4j.properties





12、随便找一篇zk的介绍看看【领导者选举算法、cap理论只满足cp而已,因为leader挂了要选举,此时服务不可用】

http://zookeeper.apache.org/doc/r3.4.12/zookeeperInternals.html

13、https://cwiki.apache.org/confluence/display/ZOOKEEPER/Zab+vs.+Paxos

两个协议不一样的地方,主要是  Zab 是主备【增量,有序的,简单理解:只有一个master更新节点并同步给其他节点,具有强一致性】,Paxos是 状态机【每个节点数据都是全量的、并且有可能是无序的最终一致性




猜你喜欢

转载自blog.csdn.net/chinacsdnv2/article/details/81049686