1.4.1. 安装节点

将生成的安装包传至相应 Ip 的服务器上,解压并安装各节点。

tar -zxvf 101.35.234.160_agency.tar.gz #注意替换成自己的压缩包名
cd 101.35.234.160_agency #进入工作目录
bash install_node.sh #运行安装脚本

执行成功后,会在每个 node 目录中生成 thanos-chainthanos-gateway 两个目录。

1.4.2. 启动节点服务

启动四个节点服务,顺序为先启动 thanos-chain 服务,再启动 thanos-gateway 网关。

# 以node0为例
cd node0/thanos-chain
bash start_chain.sh

当配置的初始节点服务均已启动,则链启动完成。脚本中每个进程默认设置占用 1g 的内存,如果需要修改,可以进入脚本中直接修改运行指令。

运行脚本会后台启动进程,运行结果不会直接输出,请转至相应的 logs 目录下查看运行日志。

# 以node0为例
cd node0
tail -f thanos-chain/logs/thanos-chain.log | grep 'empty do commit cost' #如果持续打印该消息,说明节点 chain 服务启动成功并参与共识。

1.4.3. 启动节点网关

节点服务启动成功后,再启动 thanos-gateway 网关

# 以node0为例
cd node0/thanos-gateway
bash start_gateway.sh

网关启动后查看 log 日志如下,则启动成功

# 以node0为例
cd node0
cat thanos-gateway/logs/thanos-gateway.log |grep 'INFO [main]  Main start success!!' #如果打印该消息,说明节点 gateway 程序启动成功。

其他问题

内存不足

如果在运行程序时,遇到启动失败且无任何日志时,可能时服务器内存不住的原因。脚本中每个进程默认设置占用 1g 的内存,所以 chaingateway 总共会占用至少 2g 的内存。

如果需要修改,可以直接进入 start-chain.sh 以及 start-gateway.sh 脚本中修改运行指令。

  • start-chain.sh
nohup java  -Xmx256m -Xms256m -Xmn256m -Xss4M -XX:SurvivorRatio=8  -jar thanos-chain.jar >/dev/null &
  • start-gateway.sh
nohup java  -Xmx256m -Xms256m -Xmn256m -Xss4M -XX:SurvivorRatio=8  -jar thanos-gateway.jar >/dev/null &

rpc 端口绑定失败

如果节点网关 rpc 端口绑定失败,thanos-gateway.log 中会出现如下报错信息

java.net.BindException: Cannot assign requested address (Bind failed)
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
    at java.net.ServerSocket.bind(ServerSocket.java:375)
    at java.net.ServerSocket.<init>(ServerSocket.java:237)
    at javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:231)
    at com.thanos.gateway.jsonrpc.RpcServiceProvider.loadServerSocket(RpcServiceProvider.java:69)
    at com.thanos.gateway.jsonrpc.RpcServiceProvider.<init>(RpcServiceProvider.java:44)
    at com.thanos.gateway.jsonrpc.JsonRpcInit.init(JsonRpcInit.java:14)
    at com.thanos.gateway.Main.main(Main.java:31)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65)

需要查看 node0/thanos-gateway/resource/thanos-gateway.conf 配置文件并找到 rpc.address 条目,例如 address=10.8.0.1:8180

  • 检查对应的 8180 端口是否在安全组中配置打开
  • 检查 Ip 地址是否为内网地址 (目前 rpc 限制为仅内网可访问,而 http 为外网访问)

检查并修改完成后,重新执行 start_gateway.sh 运行网关,注意如果上一次运行的进程如果未关闭,需要先手动关闭。

ps -ef | grep java #查询运行中的 java 进程
kill -9 进程号 #找到对应的进程,并关闭
Copyright © netease 2024 all right reserved,powered by Gitbook文档修订时间: 2024-10-12 17:03:52

results matching ""

    No results matching ""