TarsCloud / Tars

Tars is a high-performance RPC framework based on name service and Tars protocol, also integrated administration platform, and implemented hosting-service via flexible schedule.
BSD 3-Clause "New" or "Revised" License
9.8k stars 2.08k forks source link

Tars 添加节点失败 #899

Open adropofsnow opened 9 months ago

adropofsnow commented 9 months ago
截屏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
ruanshudong commented 9 months ago

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

ruanshudong commented 9 months ago

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

adropofsnow commented 9 months ago

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

ruanshudong commented 9 months ago

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

adropofsnow commented 9 months ago

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:

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等组联接正常呢?

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

ruanshudong commented 9 months ago

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

adropofsnow commented 9 months ago

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

ruanshudong commented 9 months ago

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

adropofsnow commented 9 months ago

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

ruanshudong commented 9 months ago

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

adropofsnow commented 9 months ago

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

ruanshudong commented 9 months ago

开源版本没啥好办法了