tarsphp的安装使用

写在前面:tars是微服务架构模式,为什么使用?原来的mvc模式的开发以及耦合性太大,后期拆分以及测试维护上线影响等都逐渐显示出了短板,微服务意味着把m和c拆分可独立模块,详细不表。
1,安装tars核心组件
https://github.com/TarsCloud/Tars/blob/master/Install.zh.md
详细按照官方文档基本上都能安装,出现错误的注意查看日志
2,安装web界面管理

cd /usr/local/tars
git clone https://github.com/TarsCloud/TarsWeb.git
cd /usr/local/tars/TarsWeb

替换配置文件

sed -i 's/db.tars.com/你的ip/g' config/webConf.js
sed -i 's/registry.tars.com/你的ip/g' config/tars.conf

安装

$ npm install --registry=https://registry.npm.taobao.org
$ npm run prd

具体报错可以查看日志cat /root/.npm/_logs/缺什么安装什么
打开3000端口看到界面
tarsphp的安装使用
3,安装tarsphp以及官方例子,要求php5.6以上,需安装swoole扩展,redis扩展,phptars扩展
swoole和redis扩展安装这里不再赘述
phptars扩展安装

git clone https://github.com/TarsPHP/tars-extension.git
cd /opt/tars/TarsPHP/tars-extension
 /usr/local/php7.2.10/bin/phpize
./configure
./configure --with-php-config=/usr/local/php7.2.10/etc/php.ini
./configure --with-php-config=/usr/local/php7.2.10/bin/php-config
make install

修改php.ini配置支持扩展
查看扩展安装情况
/usr/local/php7.2.10/bin/php -m
下载tarsphp开发
git clone https://github.com/TarsPHP/TarsPHP.git
下载后可看到官方例子TarsActDemo
弹幕活动项目,其中包含3个服务。
涵盖了Http,Tcp服务,使用了Mysql,Redis存储,包含了用户登录、session校验、用户信息获取、弹幕创建、弹幕获取等功能。已经涵盖了平常业务开发的很多方面。

QD.ActHttpServer.obj是一个http服务,对外提供固定端口,这是业务服务,调用后端的User和Comment服务完成业务。
QD.ActCommentServer.CommentObj 是一个tcp服务,主要提供评论的写入和获取,存储在Redis中。
QD.UserService.UserObj 是一个tcp,主要提供用户信息获取,用户登录,用户Session校验。相关数据保存在Mysql中。

index.html是前端页面,连接http服务,实现弹幕展示。
act.tars.local.conf是nginx配置
user_info.sql是QD.UserServer服务的用户信息表

1).修改QD.UserService中src/ENVConf.php 中的mysql 配置,设置你们自己的mysql ip、port和db名字
2).导入user_info.sql到你的mysql中。
3).修改QD.ActCommentServer中src/ENVConf.php 中的redis 配置,设置你们自己的redis ip、port
4).依次cd 到各个服务的 src 目录,执行 composer install,安装composer 依赖
5).依次cd 到各个服务的 src 目录,执行 composer run-script deploy 打包代码
6).部署三个服务,QD.ActHttpServer是http服务,需要固定一个端口,选 非tars服务,发布模板需要新建

<tars>
 <application>
   enableset=${enableset}
    setdivision=${setdivision}
    <client>
      locator=${locator}
      sync-invoke-timeout=20000
      async-invoke-timeout=20000
      refresh-endpoint-interval=60000
      stat=tars.tarsstat.StatObj
      property=tars.tarsproperty.PropertyObj
      report-interval=60000
      modulename=${modulename}
      sample-rate=100000
      max-sample-count=50
   </client>
   <server>
      app=${app}
      server=${server}
      localip=${localip}
      local=${local}
      basepath=${basepath}
      datapath=${datapath}
      logpath=${logpath}
      loglevel=DEBUG
      logsize=15M
      log=tars.tarslog.LogObj
      config=tars.tarsconfig.ConfigObj
      notify=tars.tarsnotify.NotifyObj
      logLevel=DEBUG
      php=/usr/local/php7.2.10/bin/php
      buffer_output_size=12582912
      open_tcp_nodelay=1
      open_eof_check=0
      open_eof_split=0
      task_worker_num=1
      dispatch_mode=2
      daemonize=1
      protocolName=http
    </server>
 </application>
</tars>

其他两个是tcp 服务,端口随意,选 tars服务。
(注意部署的时候在平台上配置的ServantName要和我上面写的全称一样,如果你需要修改,请同步修改tars.proto.php,actComment.proto.php和userInfo.proto.php,并从新生成protocol中代码)
7).配置你的nginx,proxy_pass 修改为你的 QD.ActHttpServer服务的ip地址和端口
8).拷贝index.html 到你的/data/website/tarsact/中
9).打开看一下是否可以访问
10).输入一个用户名 yong密码123456执行以下登录
11).发个弹幕试试
12).刷新一下,你发的弹幕出来了吗?恭喜你 O(∩_∩)O哈哈~
tarsphp的安装使用