1 Star 0 Fork 1

TarsPHP/tars-client

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

tars-client

简介

主要包含主控寻址网络收发能力、上报能力

tests目录提供了一个tars服务的测试用例。服务名为 App.Server.Servant

使用说明

参照提供的测试用例。
tars-client端调用tars服务,在实例化时需要传入 \Tars\client\CommunicatorConfig 的实例,设定必要的配置信息。主要包含以下内容

  • 服务地址
    • 主控寻址
      • 有多台机器提供服务时,可以通过主控自动寻址方式发现服务
    • 指定服务地址
      • 灰度或者需要从特定地址获取服务时,采用此方式
  • 网络传输
    • 包含三种模式:socket、swoole sync、swoole coroutine
  • 上报名
    • 指定上报模块名称。主控寻址默认为 tarsproxy ,指定服务地址时可以根据业务自行填写
  • 编码格式

服务寻址方式

结合测试用例testServant.php介绍不同服务寻址的代码规范。
通过 \Tars\client\CommunicatorConfig 类设定相关配置。测试用例给出了两种寻址方式的示例代码
1、主控寻址
一旦指定locator,tars可以根据服务名自动抓取服务地址。locator配置的格式如下

$config = new \Tars\client\CommunicatorConfig();
$config->setLocator("tars.tarsregistry.QueryObj@tcp -h 172.16.0.161 -p 17890");

tars主控本身也是一个tars服务,服务名为 tars.tarsregistry.QueryObj ,传输协议为tcp,服务地址为 172.16.0.161,端口为 17890 。实际开发中请 根据服务实际情况填写

上述主控服务确定后,可以根据需要指定上报的模块名及编码格式。默认的上报模块名为 tarsproxy ,为了便于跟踪业务,建议重新指定上报模块名

$config->setModuleName("App.Server");
$config->setCharsetName("UTF-8");

2、指定ip 指定服务方的地址。这种方式需要指定服务的ip、port,代码如下。

$route['sIp'] = "127.0.0.1";
$route['iPort'] = 8080;
$routeInfo[] = $route;
$config = new \Tars\client\CommunicatorConfig();
$config->setRouteInfo($routeInfo);

其他用法同自动寻址相同

Changelog

v0.3.0(2019-07-30)

  • 支持调用protobuf的服务

空文件

简介

php调用tars服务的client 展开 收起
取消

发行版

暂无发行版

贡献者 (6)

全部

近期动态

4年前创建了 PR #1 修复Communicator的$_statF会为null的错误
5年多前创建了仓库
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/TarsPHP/tars-client.git
git@gitee.com:TarsPHP/tars-client.git
TarsPHP
tars-client
tars-client
master

搜索帮助