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-skeletonV1 
最新稳定版本
 
执照
 






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值