spiral / app-grpc
Spiral Skeleton GRPC 应用
v2.0.0
2022-08-30 08:41 UTC
Requires
- php: >=8.1
- spiral/cycle-bridge: ^2.0
- spiral/framework: ^3.0
- spiral/queue: ^3.0
- spiral/roadrunner-bridge: ^2.0
- spiral/roadrunner-grpc: ^2.0
README
警告
该仓库已弃用,推荐使用 spiral/app
.
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-curl
和php-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 维护。