summer整合tp6

在完成基础对服务注册发现等功能后,如果要写业务,还是需要一套比较好用对后端框架作为支撑。

选了一大圈没找到满意的,准备自己写,发现找组件,组合这些组件也是很大的工程,而且代码质量不能保证。

综合一下,就选了使用人数较多,门槛较低对thinkphp6, 由于tp6正式版还没有出来,所以在开发版上进行集成。等tp6正式版发布,我也发布个summer正式版,哈哈哈,tp也有轻量级对微服务化架构支撑了。

整合需求

  • 无侵入
  • 低配置

整合方案

基于think-swoole开发suframe/think进行集成,包地址:https://packagist.org/packages/suframe/think
大致开发思路:

  • 新增thinkphp对services,用于增加console命令
  • 初始化配置文件
  • 启动tcp服务,自动注册
  • 增加rpc接口同步

测试

接下来完整的走下开发流程

1. 安装summer代理网关

composer create-project suframe/summer-proxy=@dev
cd summer-proxy
php app/summer tcp:start

2. 安装tp6

composer create-project topthink/think=6.0.x-dev tp
cp .example.env .env

修改.env 内容:APP_DEBUG = true,打开调试模式

3. 修改composer.json(重要)

这步很重要,因为suframe-think还在开发版,没有发布正式版,只能先安装dev版
增加到底部如下

{
  "minimum-stability": "dev",
  "prefer-stable": true
}

4. 安装suframe-think

composer require topthink/think-swoole
composer require suframe/think

5. 增加测试文件

创建app/rpc目录,新增HelloRpc.php,内容如下:

<?php
namespace app\rpc;

class HelloRpc
{
    /**
     * hello 测试
     * @param null $name
     * @return string
     */
    public function run($name = null){
        return 'hello ' . $name;
    }
}

6. 开始测试

  • 启动rpc服务
php think swooleTcp

1.jpg

  • 同步rpc接口
    新窗口打开命令行
php think swooleTcp sync

此时config目录下会有个.phpstorm.meta.php,这个就是用于rpc提示对文件,当然这个是用于phpstorm编辑器

  • 增加测试action
    打开app/controller/Index.php增加action,
    public function rpc($name = 'ThinkPHP6')
    {
        $rs = [
            \suframe\core\components\rpc\SRpc::route('/demo/HelloRpc')->run(1111),
            (new \app\rpc\HelloRpc())->run(2222)
        ];
        return \think\response\Json::create($rs);
    }

这里用绝对路径而不是use是因为好多朋友直接用记事本编辑,没有自动引入use
suframecorecomponentsrpcSRpc::route(' 这句代码的时候,输入/ 会提示出所有对rpc接口,就是前面sync的时候创建对

  • 启动tp6
php think php

然后访问:http://127.0.0.1:8000/index/rpc
2.jpg

总结

来看看我们启动了些什么服务

  • suframe/proxy 代理网关和服务注册发现 A
  • suframe/think 基于tp6的rpc服务 B
  • think run tp6的服务启动 C

浏览器访问的流程:
浏览器 => c 控制器 => rcp调用 c的rpc接口
当然你可以重新起一个,修改swooleTcp里面对端口和注册的path即可

到此summer已经集成到tp6了,至于统一日志和统一配置后面来慢慢处理,这个涉及到tp的一些流程监控,属于定制。
一起high起来~~~

标签: 无

发表评论: