欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Tars和Dcache使用中的问题及注意事项

程序员文章站 2022-03-15 15:49:55
...

简介


腾讯开源的Tars和Dcache用于快速搭建微服务系统,使用还是很方便的。

但由于使用人数及场景还不是很充分,仍有一些隐藏的问题,使用中要评估到该风险。

本文就笔者使用经历,小结一下遇到的问题及解决方式,供参考。

注:权威信息请以官方为主。

win部署tarsnode发布服务失败


自v2.4.2以来,Tars开始提供了较好地支持Windows系统功能。

但在Windows部署tarsnode后,发布服务总是失败,显示的错误原因如下:

[TC_ConfigDomain::parse] 'C:\\Windows\ ystem32\\usr\\local\\app\\tars\\tarsnode\\data\\DemoServer\\bin\\' is invalid, '\ ' couldn't be parse!

刚开始找了一圈没找到原因,我还查了源码把源码改了:

Tars和Dcache使用中的问题及注意事项

注释了如图中的替换字符串的行,结果,上面的问题是解决了,但又来了个新问题:

TARS_PATH\\tarsnode\util\busybox.exe tar xzfv C:\Windows\system32\TARS_PATH\tarsnode\data\tmp\download\BatchPatchingLoad\Demo\Demo.tgz -C C:\Windows\system32\TARS_PATH\tarsnode\data\tmp\download\BatchPatching\Demo, error!

由此注意到,这问题的根本原因可能在于路径。

为什么是c:/windows/system32呢?

而且也没有理由建立一个TARS_PATH的目录。

查看了tarsnode源码,对于win系统,它会读取basepath.win等相关配置。

又咨询了Tars开发人员,最终通过增加win配置解决了这个问题,步骤如下:

  1. 进入web界面-运维管理-模板管理
  2. 编辑tars.default,在中增加以下内容:
basepath.win=C:\tars-install\tars\tarsnode\data # 根据tarsnode实际安装路径填写,下同 
datapath.win=C:\tars-install\tars\tarsnode\data 
logpath.win=C:\tars-install\tars\app_log
  1. 重启win节点机tarsnode即可

此时,服务的路径就是c:/tars-install/tars/tarsnode/data了。

另外,如果win发布的应用依赖动态库的话,也需要把库提前放到对应路径下,如:c:/windows/system32/

重启设备后Dcache服务启动失败


在Dcache正常运行时,如果突然掉电或其他原因导致设备重启,在重启DCache服务时,都可能发现以下信息:

Tars和Dcache使用中的问题及注意事项

这是因为Dcahce在首次运行时创建了shmkey相关的dat文件,而突然重启时,该文件没有删除,再次启动就会失败。

这时,需要先关闭Dcache服务,然后删除dat文件,最后再重启服务就可以了。

dat文件位于/usr/local/app/tars/tarsnode/data/目录下相应的DCache服务下的data目录下。

启动Dcache服务时提示shmkey已经存在


如果已经创建过该key,就会出现这个错误。

Tars和Dcache使用中的问题及注意事项

可以通过ipcs命令查看所有的shmkey:

Tars和Dcache使用中的问题及注意事项

确认已经存在的key没有使用,可以使用ipcrm -m把它删除:

Tars和Dcache使用中的问题及注意事项

然后再重启DCache服务即可。