roadrunner
- roadrunner-server
- roadrunner
- MIT, Go
- load-balancer, process manager written in Golang
 
- goridge
- PHP-to-Golang IPC/RPC bridge
 
- endure
- Fault-tolerant service container for Golang applications
 
- sdk
- api
- protobuf
 
 
- roadrunner
- spiral/framework
- MIT, PHP
- 基于 RoadRunner
- Long-Living PHP Framework
 
- https://roadrunner.dev/docs/plugins-jobs/2.x/en
composer require spiral/roadrunner:v2.0 nyholm/psr7
./vendor/bin/rr get-binary
# Docker
# https://hub.docker.com/r/spiralscout/roadrunner
# 镜像
composer config repo.packagist composer https://packagist.phpcomposer.com
配置
version: '2.7'
rpc:
  listen: tcp://127.0.0.1:6001
server:
  # 主入口
  command: 'php psr-worker.php'
  env:
    - KEY: 'VALUE'
logs:
  # development, production, raw
  mode: development
  # panic, error, warn, info, debug
  level: debug
  # console, json
  encoding: console
  # stderr, stdout, /var/log/rr.log
  output: stderr
  err_output: stderr
  file_logger_options:
  # log for plugins
  channels:
    http:
    server:
    rpc:
temporal:
  address: 127.0.0.1:7233
kv:
  mem-store:
    # boltdb, redis, memcached, memory
    driver: memory
# 服务插件
service:
# HTTP 插件
http:
  address: 127.0.0.1:8080
  trusted_subnets: ['10.0.0.0/8', '127.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16', '::1/128', 'fc00::/7', 'fe80::/10']
  cache:
    driver: memory
    cache_methods: ['GET', 'HEAD', 'POST']
    config: {}
  uploads:
    # $TEMP
    dir: ''
    forbid: ['.php', '.exe', '.bat', '.sh']
    allow: []
  headers:
    cors:
    request:
    response:
  static:
    dir: '.'
    forbid: []
    calculate_etag: false
    weak: false
    allow: ['.txt', '.php']
    request:
    response:
  pool:
    debug: false
  ssl:
    acme:
  fcgi:
  http2:
    h2c: false
    max_concurrent_streams: 128
# broadcast driver for the websockets
redis:
websockets:
  broker: default-redis
broadcast:
metrics:
  address: '127.0.0.1:2112'
status:
  address: 127.0.0.1:2114
  unavailable_status_code: 503
reload:
  interval: 1s
  patterns: ['.php']
  services:
# NATS jobs driver
nats:
  addr: nats://127.0.0.1:4222
jobs:
grpc:
  listen: 'tcp://localhost:9001'
  proto:
    - 'first.proto'
    - 'second.proto'
spiral
composer create-project spiral/app
cd app
php ./app.php configure
FAQ
Could not find package spiral/roadrunner
fixed by change composer repo