与Laravel结合使用
简介
Laravel集成微服务治理框架Tars
支持服务打包
支持Laravel/Lumen原生开发
支持TarsConfig
支持TarsLog
支持网关注册下线
支持请求开始(laravel.tars.requesting)、请求结束(laravel.tars.requested)事件
支持echo输出内容
支持http和tars协议
支持zipkin分布式追踪(已移除,可以使用laravel-zipkin扩展包)
受限于框架本身的设计,不支持协程
相关项目
LaravelTars (https://github.com/luoxiaojun1992/laravel-tars)
LaravelTarsDemo (https://github.com/luoxiaojun1992/laravel-tars-demo)
LumenTarsDemo (https://github.com/luoxiaojun1992/lumen-tars-demo)
Laravel5.x (https://github.com/laravel/framework)
Lumen5.x (https://github.com/laravel/lumen)
TARSPHP (https://github.com/TarsPHP)
TARSPHP DOCKER (https://github.com/tangramor/docker-tars)
使用
创建项目
创建Tars项目目录结构(scripts、src、tars),Laravel/Lumen项目放在src目录下
安装Laravel Tars包
更新Composer依赖
或添加 requirement 到 composer.json
添加ServiceProvider,编辑src/bootstrap/app.php
初始化Laravel Tars
修改配置文件src/config/tars.php文件proto字段,替换appName、serverName、objName
如果使用http协议,且需要自动注册到网关(目前仅支持Kong),修改配置文件src/config/tars.php
配置中心(TarsConfig)或者日志服务(TarsLog)
服务启动时会自动拉取配置,如果需要记录日志,可以使用类似
Log::info('test log');如果需要指定TarsLog记录的最低日志级别,修改配置文件src/config/tars.php
如果使用http协议,按框架原生方式编写代码
如果使用tars协议
在tars目录下编写tars接口描述文件,修改配置文件src/config/tars文件proto字段,新增tarsFiles
在scripts目录执行编译脚本生成接口代码
在src/app/Tars/impl目录下创建接口实现类,编写业务逻辑代码
修改src/config/tars.php文件services字段,替换接口和接口实现命名空间
在Tars-PHP开发环境下打包项目(在src目录下执行
php artisan tars:deploy)在Tars管理后台发布项目,请参考TARS-PHP-TCP服务端与客户端开发),测试
curl 'http://{ip}:{port}/{api_route}'
持续集成
Jenkins Pipeline 配置示例(根据实际情况修改)
Laravel:
Lumen:
Last updated