步骤 32: 使用 RabbitMQ 作为消息代理

    要使用 RabbitMQ 作为消息代理来代替 PostgreSQL:

    patch_file

    你可能已经猜到了,我们仍然需要把 RabbitMQ 加入到 Docker Compose 栈:

    patch_file

    1. +++ b/docker-compose.yaml
    2. @@ -21,3 +21,7 @@ services:
    3. redis:
    4. image: redis:5-alpine
    5. +
    6. + rabbitmq:
    7. + image: rabbitmq:3.7-management
    8. + ports: [5672, 15672]

    为了强制让 RabbitMQ 容器在 Docker Compose 中生效,把容器都关闭,并且重启它们:

    或者从网站调试工具栏打开:

    使用 guest/guest 作为账号密码来登录 RabbitMQ 的管理界面:

    步骤 32: 使用 RabbitMQ 作为消息代理 - 图2

    将 RabbitMQ 加入服务列表,就可以把它加进生产服务器。

    1. --- a/.symfony/services.yaml
    2. +++ b/.symfony/services.yaml
    3. @@ -18,3 +18,8 @@ files:
    4. rediscache:
    5. +
    6. + type: rabbitmq:3.7
    7. + disk: 1024
    8. + size: S

    也可以在网站容器配置中找到它,然后启动 amqp 这个 PHP 扩展:

    patch_file

    当项目中安装了 RabbitMQ 服务,你可以通过先打开隧道来访问它的网站管理界面:

    1. $ symfony tunnel:open
    2. $ symfony open:remote:rabbitmq
    3. # when done
    4. $ symfony tunnel:close

    深入学习