TarsCloud/Tars

Tars 添加节点失败

adropofsnow opened this issue · 12 comments

截屏2024-01-02 14 52 47

tars添加节点失败(如上图) 系统环境:centos 7.9 阿里云,使用公网IP添加

在新添加的节点服务器,能看到 ./bin/tarsnod 进程,无异常错误 ,19386和19387端口能正常启用

tars所部署的服务器,telnet 新添加的节点服务器 19387 19385 19386 三个端口正常。

补充说明:使用同一网段的内网IP地址,添加节点,正常。
tars.tarsnode.config.conf 的配置信息如下:


enableset=n
setdivision

locator=tars.tarsregistry.QueryObj@tcp -h 172.22.245.21 -p 17890
async-invoke-timeout=5000
refresh-endpoint-interval=60000
stat=tars.tarsstat.StatObj
property=tars.tarsproperty.PropertyObj
report-interval=60000
modulename=tars.tarsnode
sync-invoke-timeout=6000
asyncthread=3


app=tars
server=tarsnode
localip=...* #此处为新添加节点的的公网IP
local=tcp -h 0.0.0.0 -p 19387 -t 10000
basepath=/usr/local/app/tars/tarsnode/data
datapath=/usr/local/app/tars/tarsnode/data
logpath=/usr/local/app/tars/app_log
logsize=10M
lognum=10
logLevel=DEBUG
config=tars.tarsconfig.ConfigObj
notify=tars.tarsnotify.NotifyObj
log=tars.tarslog.LogObj
activating-timeout=10000
deactivating-timeout=3000

endpoint=tcp -h 0.0.0.0 -p 19385 -t 60000
allow
maxconns=1024
threads=5
queuecap=10000
queuetimeout=4000
servant=tars.tarsnode.NodeObj


endpoint=tcp -h 0.0.0.0 -p 19386 -t 60000
allow
maxconns=1024
threads=5
queuecap=10000
queuetimeout=4000
servant=tars.tarsnode.ServerObj




registryObj=tars.tarsregistry.RegistryObj
cmd_white_list_ip

heartTimeout=45
monitorInterval=3
synStatInterval=60


file=serversCache.dat
minBlock=500
maxBlock=500
factor=1
size=10M


要在同一个网段才行, 否则会有问题的

比如都是内网, 或者都是外网, 网络互通

老师太给力了,秒回。 上述问题描述,就是都是外网,并且网络是互通的。tars服务器,我没找到错误日志,所以也没办法进一步排查。

框架组件都绑定在外网么? tarsnode能访问这些组件么? tarsnode需要连接tarsAdminRegistry等组件的, 并且这些组件的ip是tarsregistry通过名字发现得到的, 如果是外网这里很可能有问题

docker-compose.yml 配置信息如下:
version: "3"
services:
tars-mysql:
image: mysql:5.6
network_mode: "host"
environment:
MYSQL_ROOT_PASSWORD: "FISCO"
MYSQL_TCP_PORT: 3310
restart: always
volumes:
- ~/app/tars/framework-mysql:/var/lib/mysql
- /etc/localtime:/etc/localtime

tars-framework:
image: tarscloud/framework:v3.0.1
network_mode: "host"
environment:
MYSQL_HOST: "127.0.0.1"
MYSQL_ROOT_PASSWORD: "FISCO"
MYSQL_PORT: 3310
REBUILD: "false"
INET: eth0 #此处实际获取的值为
SLAVE: "false"
restart: always
volumes:
- ~/app/tars/framework:/data/tars
- /etc/localtime:/etc/localtime
depends_on:
- tars-mysql

tars服务器的 ip信息如下:
ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:3e:00:a5:41 brd ff:ff:ff:ff:ff:ff
inet 172.22.245.21/20 brd 172.22.255.255 scope global dynamic eth0
valid_lft 314904462sec preferred_lft 314904462sec
inet6 fe80::216:3eff:fe00:a541/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:3b:6f:a2:48 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 scope global docker0
valid_lft forever preferred_lft forever

**我的异问是:我所能调整的配置并不多,反复看相关资料,自己未发现不妥不处。
我怎么确定框架组件是否绑定在外网呢?又如何检验tarsnode需要连接tarsAdminRegistry等组联接正常呢?

麻烦老师了,可否详细的告知一下,再次感谢老师**

最好是找个外网网卡的机器, 部署时直接绑定到这个网卡上, 这样最简单

不好意思老师,用的云服务器,不具备直接绑定到外网网卡的条件,有什么的办法解决吗?麻烦老师详细解答一下

那就比较麻烦了, 一下子就说不清楚了, 而且操作起来比较麻烦, 如果不熟悉框架的, 估计是搞不定的

老师,我在使用FISCO BCOS 区块链,这个应用的部署,又依赖于tars框架,现在又是云服务器,又无法获取到外网网卡。是否可以,手动启动tarsnode?我仅仅是应用tars,研究其框架也太现实。是否还有其它可行方案?

云服务器应该有能力绑定一个外网网卡的, 是不是申请一个弹性外网网卡就可以?

阿里云有,但需要额外收费。我们使用的是其它服务商提供的私有云,估计没办法处理。我不知道,有没办法,不依赖于外网网卡,有什么变通的方式,可以让我使用能正常部署FISCO BCOS 区块链

开源版本没啥好办法了