基于微服务架构思想,swoole协程框架,配合ffmpeg推流以及rtmp协议打造的一款简洁的微服务直播系统

网友投稿 921 2022-10-25

基于微服务架构思想,swoole协程框架,配合ffmpeg推流以及rtmp协议打造的一款简洁的微服务直播系统

基于微服务架构思想,swoole协程框架,配合ffmpeg推流以及rtmp协议打造的一款简洁的微服务直播系统

简介

微服务直播系统 指导人:pack/peter

首个基于 Swoole 原生协程的新时代 PHP 高性能协程全栈组件化框架,内置协程网络服务器及常用的协程客户端,常驻内存,不依赖传统的 PHP-FPM,全异步非阻塞 IO 实现,以类似于同步客户端的写法实现异步客户端的使用,没有复杂的异步回调,没有繁琐的 yield,有类似 Go 语言的协程、灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等,可以用于构建高性能的Web系统、API、中间件、基础服务等等。

基于 Swoole 扩展内置协程 HTTP, TCP, WebSocket 网络服务器强大的 AOP (面向切面编程)灵活完善的注解功能全局的依赖注入容器基于 PSR-7 的 HTTP 消息实现基于 PSR-14 的事件管理器基于 PSR-15 的中间件基于 PSR-16 的缓存设计可扩展的高性能 RPC完善的服务治理,熔断,降级,负载,注册与发现数据库 ORM通用连接池协程 Mysql, Redis, RPC, HTTP 客户端协程和同步阻塞客户端无缝自动切换协程、异步任务投递自定义用户进程RESTful 支持国际化(i18n)支持高性能路由快速灵活的参数验证器别名机制强大的日志系统跨平台热更新自动 Reload

环境要求

PHP 7.0 +Swoole 2.1.1 +, 需开启协程和异步RedisHiredisComposer

安装

手动安装

Clone 项目git clone git@github.com:KevinHubs/swofts_live.git

配置

若在执行 composer install 的时候由程序自动复制环境变量配置文件失败,则可手动复制项目根目录的 .env.example 并命名为 .env,注意在执行 composer update 时并不会触发相关的复制操作

# ServerPFILE=/tmp/swoft.pidPNAME=php-swoftTCPABLE=trueCRONABLE=falseAUTO_RELOAD=true# HTTPHTTP_HOST=0.0.0.0HTTP_PORT=80# WebSocketWS_ENABLE_HTTP=true# TCPTCP_HOST=0.0.0.0TCP_PORT=8099TCP_PACKAGE_MAX_LENGTH=2048TCP_OPEN_EOF_CHECK=false# CrontabCRONTAB_TASK_COUNT=1024CRONTAB_TASK_QUEUE=2048# SettingsWORKER_NUM=1MAX_REQUEST=10000DAEMONIZE=0DISPATCH_MODE=2LOG_FILE=@runtime/swoole.logTASK_WORKER_NUM=1

管理

帮助命令

[root@swoft]# php bin/swoft ws:start ____ __ _/ ___|_ _____ / _| |_\___ \ \ /\ / / _ \| |_| __| ___) \ V V / (_) | _| |_|____/ \_/\_/ \___/|_| \__|Usage: php bin/swoft {command} [arguments ...] [options ...]Commands: entity The group command list of database entity gen Generate some common application template classes rpc The group command list of rpc server server The group command list of http-server ws There some commands for manage the webSocket serverOptions: -v, --version show version -h, --help show help

HTTP Server启动

是否同时启动RPC服务器取决于.env文件配置

// 启动服务,根据 .env 配置决定是否是守护进程php bin/swoft start// 守护进程启动,覆盖 .env 守护进程(DAEMONIZE)的配置php bin/swoft start -d// 重启php bin/swoft restart// 重新加载php bin/swoft reload// 关闭服务php bin/swoft stop

WebSocket Server启动

启动WebSocket服务器,可选是否同时支持http处理

// 启动服务,根据 .env 配置决定是否是守护进程php bin/swoft ws:start// 守护进程启动,覆盖 .env 守护进程(DAEMONIZE)的配置php bin/swoft ws:start -d// 重启php bin/swoft ws:restart// 重新加载php bin/swoft ws:reload// 关闭服务php bin/swoft ws:stop

RPC Server启动

启动独立的RPC服务器

// 启动服务,根据 .env 配置决定是否是守护进程php bin/swoft rpc:start// 守护进程启动,覆盖 .env 守护进程(DAEMONIZE)的配置php bin/swoft rpc:start -d// 重启php bin/swoft rpc:restart// 重新加载php bin/swoft rpc:reload// 关闭服务php bin/swoft rpc:stop

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【转载】Impala和Hive的区别
下一篇:MySQL/Oracle视图的创建与使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~