jafaripur / php-microservice-application-symfony
基于 Symfony 的 php-microservice 框架脚手架控制台应用程序,用于微服务节点
dev-master
2022-08-18 11:05 UTC
Requires
- php: ^8.1
- ext-ctype: *
- ext-iconv: *
- jafaripur/php-microservice: dev-master
- jafaripur/php-microservice-user-service: dev-master
- spiral/roadrunner: ^2.7
- symfony/console: 6.0.*
- symfony/dotenv: 6.0.*
- symfony/flex: ^2
- symfony/framework-bundle: 6.0.*
- symfony/http-client: 6.0.*
- symfony/runtime: 6.0.*
- symfony/yaml: 6.0.*
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.7
- overtrue/phplint: ^4.0
- phpunit/phpunit: ^9.5
- symfony/browser-kit: 6.0.*
- symfony/css-selector: 6.0.*
- symfony/phpunit-bridge: ^6.0
- vimeo/psalm: ^4.22
Conflicts
This package is auto-updated.
Last update: 2024-09-14 20:04:23 UTC
README
Symfony
控制台应用程序,用于编写我们的方法处理器,负责处理客户端调用。
此应用程序是微服务应用程序的模板,并实现了jafaripur/php-microservice 的四个方法。为使用这些微服务方法创建了另一个库 jafaripur/php-microservice-user-service。
用于消费和接收数据
php bin/console user-service:listen
通过使用此客户端库 (jafaripur/php-microservice-user-service
) 发送测试消息
php bin/console user-service:send-test
创建项目
composer create-project "jafaripur/php-microservice-application-symfony dev-master" micro3
生产构建
此应用程序可以在生产中使用 roadrunner
服务插件运行,通过 Dockerfile docker/Dockerfile.prod
,使用 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 bin/console user-service:listen first-consumer" process_num: 10 exec_timeout: 0 remain_after_exit: true restart_sec: 5 emits: command: "php bin/console 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
测试
# Build test containers docker-compose build --build-arg APP_SECRET=123456 # Run test docker-compose up micro # Stop and remove created containers docker-compose down