• 常见问题
    • 这个框架必须和swoole绑定吗
    • client和server有什么分别
    • 只用tars-php作为客户端,不用swoole可以吗
    • 主调上报一定要存储swoole_table吗
    • 自动生成代码时报错
    • 手动启动脚本在哪个位置
    • 手动脚本重启时,设置状态不会变更为active
    • 如何部署多个注册中心的
    • 多机器部署TarsPHP时,第二台机器的安装跟第一台完全一样吗,还是说第二台机器只需要安装部分服务?
    • composer下载包失败
    • 配置中心给服务发送tcp请求,http服务器怎么办
    • tarslog能和elk结合吗
    • win跑tars,发布服务失败
    • 配置文件中的dispatch_mode一定要选2吗
    • 缺少tars扩展

    常见问题

    这个框架必须和swoole绑定吗

    tars-server必须和swoole绑定。但是如果仅使用tars-client,就不需要了。

    client和server有什么分别

    两者承担的职责不同,项目结构也不同的。client只是一个调用方,server是一个服务提供者。

    只用tars-php作为客户端,不用swoole可以吗

    可以的。只有tars-server是必需swoole的,tars-client没有限制。

    主调上报一定要存储swoole_table吗

    用户可以自己实现Tars\monitor\contract\StoreCacheInterface接口实现其他的存储方式,可以参考示例代码。

    自动生成代码时报错

    有用户在执行php ../src/vendor/phptars/tars2php/src/rc/tars2php.php ./t ./ ./tars.proto.php 时报错:

    mkdir: cannot create directory ‘../src/servant/Common’: No such file or directory

    这个是目录权限问题。可以手动创建../src/servant,或者修改目录权限。

    手动启动脚本在哪个位置

    在服务根目录下的./bin目录下

    手动脚本重启时,设置状态不会变更为active

    请尽量在平台上操作重启服务,避免手动脚本重启。对于希望做发布流水自动化的,可以通过直接调用重启服务的http请求。

    如何部署多个注册中心的

    部署两个register,重启业务服务后,conf文件会自动更新。

    多机器部署TarsPHP时,第二台机器的安装跟第一台完全一样吗,还是说第二台机器只需要安装部分服务?

    在第二台机器上只需要安装核心基础服务和tarsnode,其他的比如mysql不用安装

    composer下载包失败

    1. composer require phptars/tars-server

    用用户碰到过上述命令执行失败。这种问题首先请确认本地composer没有问题。然后根据失败的msg判断具体原因。曾经出现过的问题是国内源没有同步,导致版本不一致,切换源之后问题解决。

    配置中心给服务发送tcp请求,http服务器怎么办

    配置中心的推送对于http服务器是不能使用的,对于http服务器,可以指定配置文件,启停的时候会拉取。

    tarslog能和elk结合吗

    tarslog组件可以通过增加ElasticSearchHandler来实现到elk的日志输出,预留了口子。

    win跑tars,发布服务失败

    如果是类似pid is not digit的问题,则是因为windows获取pid的方式和linux不同,启动脚本需要用powershell修改才能兼容,类似:ps -eopid,cmd | grep "$bin"| grep "tarsnode" | grep -v "grep"|grep -v "sh" |awk '{print $1}'

    配置文件中的dispatch_mode一定要选2吗

    2表示一个链接发来的数据只会被一个worker处理。这个配置可以按需调整,具体参考swoole文档

    缺少tars扩展

    类似下面这种问题,是由于没有安装tars扩展导致的。安装请参考php环境搭建

    PHP Fatal error: Class ‘TARS_Struct’ not found in /usr/local/app/tars/tarsnode/data/PHPTest.PHPServer/bin/src/vendor/phptars/tars-report/src/ServerInfo.php on line 5

    Fatal error: Uncaught Error: Class ‘TUPAPI’ not found in D:\www\tars-client\tests\vendor\phptars\tars-registry\src\client\TUPAPIWrapperRegistry.php:369