Skip to content

Latest commit

 

History

History
42 lines (24 loc) · 1.57 KB

File metadata and controls

42 lines (24 loc) · 1.57 KB

Raft-Java部署与debug

1.Docker(选择docker linux容器作为开发和部署平台)
	选择最新版本ubuntu作为镜像,绑定挂载本地目录, 便于在本地机器开发,容器环境内部署。
		docker pull ubuntu:latest:
			"docker run -it --mount type=bind,source=/Users/wangchanghao/SelfStudy/RaftProject,target=/mnt/RaftProject --name linux ubuntu:latest"	
	

2.example delopy失败
	-maven依赖还是java1.7,需要手动改成1.8
	-老版本rockdb不支持ARM64,更改至7.0.4版本解决


3.部署成功,写测试失败。
	-原因定位到是ExampleProto类初始化失败,查看log发现是protobuf问题,导致节点通信的序列化和反序列化错误


4.解决protobuf的问题

	4.1尝试更换protobuf 3.1
		-失败,因为源码proto方法文件语法是protobuf 2.0

	4.2尝试在容器里下载protobuf 2.50重新生成proto类
		-失败,编译阶段失败,因为protobuf 2.50不支持ARM 64架构,有解决方法需要打补丁,考虑到后续amd64开发环境遂放弃

	4.3更换linux镜像,换成了x86-64版本ubuntu,重新拉容器绑定挂载
		-成功,但编译阶段遇到问题,dependency-tracking失败,为了保证项目的健壮,不选择disable-dependency-tracking(强行编译)。
		-查看config.log,发现是环境问题,缺这三个依赖zlib1g-dev make libpthread-stubs0-dev,安装后重新编译,install,成功。

5.重新部署,测试读写
	成功

Raft-java源码精读 1.状态机

Raft-java项目拓展1:接入rocksdb

Raft-java项目拓展2:引入Springboot框架