spiral/app-grpc

Spiral Skeleton GRPC 应用

安装: 805

依赖项: 0

建议者: 0

安全: 0

星标: 35

关注者: 7

分支: 4

开放问题: 2

类型:项目

v2.0.0 2022-08-30 08:41 UTC

This package is auto-updated.

Last update: 2024-09-04 07:33:27 UTC


README

警告

该仓库已弃用,推荐使用 spiral/app.

Spiral Framework

Spiral GRPC 应用骨架 最新稳定版本

Spiral 框架是一个高性能的 PHP/Go 全栈框架,包含超过六十个 PSR 兼容组件。框架的执行模型基于混合运行时,其中一些服务(GRPC、队列、WebSocket 等)由应用服务器 RoadRunner 处理,而您的应用程序的 PHP 代码将永久保留在内存中(包括内存泄漏工具)。

App 骨架 (CLI, GRPC) | 文档 | Twitter | 变更日志 | 贡献


服务器要求

请确保您的服务器已配置以下 PHP 版本和扩展

  • PHP 8.0+, 64位
  • mb-string 扩展
  • PDO 扩展及所需的数据库驱动程序
  • 安装 protobuf-ext 以获得更高的性能。

应用程序包

应用程序包包括以下组件

  • 基于 RoadRunner 的 GRPC 服务器
  • 通过 Symfony/Console 的控制台命令
  • 支持 AMQP、Beanstalk、Amazon SQS、内存中的队列
  • DBAL 和迁移支持
  • Monolog、Dotenv
  • Prometheus 指标
  • Cycle DataMapper ORM

安装

composer create-project spiral/app-grpc

应用程序服务器将被自动下载(需要 php-curlphp-zip)。

一旦应用程序安装完毕,您可以通过执行以下命令来确保其正确配置:

$ php ./app.php configure

运行 GRPC 服务器

为了运行 GRPC 服务器,您必须在 .rr.yaml 文件中指定服务器密钥和证书的位置

grpc:
    listen: "tcp://0.0.0.0:50051"
    proto:
        - "proto/service.proto"
    tls:
        key: "app.key"
        cert: "app.crt"
    pool:
        num_workers: 2
        supervisor:
            max_worker_memory: 100

为了颁发本地证书

$ openssl req -newkey rsa:2048 -nodes -keyout app.key -x509 -days 365 -out app.crt

要启动应用程序服务器,请执行以下命令

$ ./rr serve

在 Windows 上

$ rr.exe serve

您可以使用任何 GRPC 客户端来测试您的端点。例如,使用 grpcui

$ grpcui -insecure -import-path ./proto/ -proto service.proto localhost:50051

在使用自签名证书时,请确保使用 -insecure 选项。

生成服务

为了将 protobuf 声明编译成服务代码,请确保已安装

要更新或生成您应用程序的服务代码,请运行

$ php ./app.php grpc:generate

生成的代码将可在 app/src/Service 中找到。实现的服务将自动在您的应用程序中注册。

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 LICENSE。由 Spiral Scout 维护。