这是什么
这是一个用Tars部署的弹幕活动项目,其中包含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.需要在tars平台上创建db配置,在tars平台上,找到QD.UserService 点击服务配置,添加配置,文件名db.json,内容:
[
{
"host": "mysql.tarsActDemo.local //这是是你的mysql地址",
"port": 3306,
"username": "root",
"password": "password",
"db": "tars_test",
"charset": "utf-8",
"instanceName": "default"
}
]
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服务,其他两个是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.打开act.tars.local看一下是否可以访问
10.输入一个用户名 yong密码123456执行以下登录
11.发个弹幕试试
12.刷新一下,你发的弹幕出来了吗?恭喜你 O(∩_∩)O哈哈~
多servant支持
- tars-server 0.3 以上版本支持多servant,可以实现tars 和 http 协议混合部署
- QD.UserService服务已经实现了tars和http协议混合部署的范例,按照上面的说明可以先部署好tars协议
- 在管理界面找到QD.UserService服务,点击管理servant,点击添加。
- obj名称 HttpObj,线程数随意,绑定地址 tcp -h {你的ip} -t 60000 -p {http服务端口} -e 0 选择非tars
- 保存后重启服务,尝试访问 http://{你的ip}:{http服务端口}/user/index 可以返还 hello word
- 可以访问 尝试访问 http://{你的ip}:{http服务端口}/user/getUsersInfoByIds?ids=8001等 测试你的服务逻辑
- 通常tars协议提供给业务调用,http协议用于测试。 业务逻辑建议统一封装到service层,http 和tars 做两个入口
其他
- 没有登出功能,如果你需要登出 可以清一下cookie
- 页面有点丑,大家将就看看
- tars文件在每个服务的tars目录