jafaripur / php-microservice-application-yii2
php-microservice 框架的 console 应用程序启动器,用于微服务节点
dev-master
2022-08-18 11:09 UTC
Requires
- php: ^8.1
- jafaripur/php-microservice: dev-master
- jafaripur/php-microservice-user-service: dev-master
- monolog/monolog: ^2.3
- samdark/yii2-psr-log-target: ^1.1
- sentry/sdk: ^3.1
- spiral/roadrunner: ^2.7
- vlucas/phpdotenv: ^5.4
- yidas/yii2-composer-bower-skip: ~2.0.13
- yiisoft/yii2: ~2.0.46
Requires (Dev)
- codeception/codeception: ^4.0
- codeception/module-asserts: ^1.0.0
- codeception/module-filesystem: ^2.0
- codeception/module-yii2: ^1.0.0
- codeception/specify: ~0.4.6
- codeception/verify: ~1.1.0
- friendsofphp/php-cs-fixer: ^3.5
- overtrue/phplint: ^4.0
This package is auto-updated.
Last update: 2024-09-18 15:17:01 UTC
README
Yii2
控制台应用程序,用于编写我们负责处理客户端调用的方法。
该应用程序是微服务应用程序的模板,并实现了 jafaripur/php-microservice 的四个方法。为使用这些微服务方法创建的另一个库是 jafaripur/php-microservice-user-service。
用于消费和接收数据
php yii_dev user-service/listen
通过使用此客户端库(jafaripur/php-microservice-user-service
)发送测试消息
php yii_dev user-service/send-test
创建项目
composer create-project "jafaripur/php-microservice-application-yii2 dev-master" micro3
配置
存在三个 env
文件
.env => For production
.env_dev => For development
.env_test => For test with codeception
三个入口点
yii => For production
yii_dev => For development
yii_test => For test with codeception
生产构建
此应用程序可以使用 Dockerfile docker/Dockerfile.prod
中的 roadrunner
服务插件在生产环境中运行。使用 docker 进行生产构建
export DOCKER_BUILDKIT=1 && docker build -f "./docker/Dockerfile.prod" -t "micro3-prod:latest" .
构建后,我们可以创建容器或 docker swarm 服务。生产 Docker 镜像运行 RoadRunner
。在此示例中,我们使用此配置为 RoadRunner,配置存在于 .rr.yaml
文件中。
version: "2.7" service: topics: command: "php yii user-service/listen first-consumer" process_num: 10 exec_timeout: 0 remain_after_exit: true restart_sec: 5 emits: command: "php yii user-service/listen second-consumer" process_num: 2 exec_timeout: 0 remain_after_exit: true restart_sec: 5 logs: mode: production encoding: console
使用此 RoadRunner 服务插件,我们可以运行多个实例的多个消费者。
从构建的镜像创建 docker 容器
docker run -d --init \ --name micro3-container \ --restart unless-stopped \ micro3-prod:latest
以及 swarm 服务
docker service create --name "micro3-service" \
--replicas 2 \
--update-delay 10s \
micro3-prod:latest
测试
# Run test docker-compose up --build micro # Stop and remove created containers docker-compose down