搭建微服务_PHP搭建微服务(一)

本篇文章开始写利用swoole的Hyperf框架搭建一个微服务架构。

首先我们安装一个Hyperf的项目,按照官方文档来利用composer安装,最好用阿里云的源。

  composer create-project hyperf/hyperf-skeleton user-srv 

选择rpc的时候选择grpc。其他的看自己的需求。

进入user-srv的根目录,创建一个protoc的文件,用户书写我们的协议文件。并且在protoc文件夹下新建一个user.proto的文件。文件如下

syntax = "proto3";

package php.micro.srv.user;

service user {
    
    rpc find (Request) returns (Response) {}
    rpc create(User) returns (Response) {}
}

// 用户信息
message User {
    
    // 用户ID
    int64  userId     = 1;
    // 用户名称
    string username   = 2;
    string phone      = 3;
    string password   = 4;
    string email      = 5;
    string nickname   = 6;
    string avatar     = 7;
    string signature  = 8;
}

// 错误码
message Error {
    
    int64 code      = 1;
    string message  = 2;
}

// 请求
message Request {
    
    int64  userId    = 1;
    string username  = 2;
    string email     = 3;
    string phone     = 4;
    enum Type {
    
        ID        = 0;
        USERNAME  = 1;
        EMAIL     = 2;
        PHONE     = 3;
    }
    Type  type       = 5;
}

// 响应
message Response {
    
    Error error = 1;
    User user   = 2;
}

我们定义了两个接口,一个查询find一个create。具体关于protoc的教程可以百度和谷歌。

然后生成protocbuf文件

protoc --php_out=grpc protoc/user.proto 

这时候会在根目录下的grpc文件夹中生成依赖的文件。

├── GPBMetadata
│   └── Protoc
│       └── User.php
└── Php
    └── Micro
        └── Srv
            └── User
                ├── Error.php
                ├── Request
                │   └── Type.php
                ├── Request.php
                ├── Request_Type.php
                ├── Response.php
                └── User.php

修改composer.json文件,在psr-4下面新增依赖,加完之后如下

"psr-4": {
    
    "App": "app/",
    "GPBMetadata": "grpc/GPBMetadata",
    "Php": "grpc/Php"
}

然后执行命令行

根据刚刚定义的proto创建自己的user表。我简单创建如下

CREATE TABLE `user`
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值