roadrunner中文文档集成到其他服务 docker
Posted Z.X
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了roadrunner中文文档集成到其他服务 docker相关的知识,希望对你有一定的参考价值。
2021年6月8日13:29:33
从 v1.0 迁移到 v2.0
从 RoadRunner v1 迁移集成。到 v2。按照以下步骤操作。
更新配置
RoadRunner 的第二个版本为其所有插件使用单个工人工厂。这意味着您必须在配置中包含一个新部分server
,该部分负责创建工作线程。限制服务不再作为单独的实体呈现,而是作为特定服务配置的一部分。
rpc:
listen: tcp://127.0.0.1:6001
server:
command: "php tests/psr-worker-bench.php"
http:
address: "0.0.0.0:8080"
pool:
num_workers: 4
在配置参考中阅读更多内容。
不再担心回声
RoadRunner 2.0 拦截所有输出到 STDOUT,这意味着您可以在不中断通信的情况下开始使用默认的 var_dump 和其他回显功能。耶!
显式声明 PSR-15 依赖
我们不再随 RoadRunner 一起提供默认的 PSR 实现,请确保自己包含一个您最喜欢的实现。例如:
$ composer require nyholm/psr7
更新工人代码
RoadRunner 简化了工作线程的创建,使用静态create()
方法自动配置您的工作线程:
<?php
use Spiral\\RoadRunner;
include "vendor/autoload.php";
$worker = RoadRunner\\Worker::create();
将 PSR-15 工厂传递给您的 PSR Worker:
<?php
use Spiral\\RoadRunner;
use Nyholm\\Psr7;
include "vendor/autoload.php";
$worker = RoadRunner\\Worker::create();
$psrFactory = new Psr7\\Factory\\Psr17Factory();
$worker = new RoadRunner\\Http\\PSR7Worker($worker, $psrFactory, $psrFactory, $psrFactory);
RoadRunner 2统一所有worker使用类似的命名,acceptRequest
改为waitRequest
:
while ($req = $worker->waitRequest()) {
try {
$rsp = new Psr7\\Response();
$rsp->getBody()->write(\'Hello world!\');
$worker->respond($rsp);
} catch (\\Throwable $e) {
$worker->getWorker()->error((string)$e);
}
}
更新 RPC
要创建 RPC 客户端,请使用新的 Goridge API:
$rpc = \\Spiral\\Goridge\\RPC\\RPC::create(\'tcp://127.0.0.1:6001\');
Ports and Containers
默认情况下,嵌入式 RPC 服务器将仅侦听 localhost 连接。为了从外部控制 RR,您必须:
- 从容器中公开 6001 端口。
- 配置 rr 监听 0.0.0.0
rpc:
listen: tcp://:6001
请记住,TCP 的通信比 Unix 套接字慢。
Docker 镜像
以下 Docker 镜像可用。
注意,这个 docker 镜像目前可用于 RoadRunner v1.*。
存储库 | 地位 |
---|---|
https://github.com/n1215/roadrunner-docker-skeleton | V1 |
以上是关于roadrunner中文文档集成到其他服务 docker的主要内容,如果未能解决你的问题,请参考以下文章
无法为 PHP 8.0 启动 Octane RoadRunner 服务器
Unity集成华为游戏服务SDK方式:集成Unity官方游戏SDK