Download the PHP package imiphp/imi-amqp without Composer
On this page you can find all versions of the php package imiphp/imi-amqp. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download imiphp/imi-amqp
More information about imiphp/imi-amqp
Files in imiphp/imi-amqp
Package imi-amqp
Short Description 支持在 imi 框架中使用 支持 AMQP 协议的消息队列,如:RabbitMQ
License MulanPSL-2.0
Informations about the package imi-amqp
imi-amqp
介绍
支持在 imi 框架中使用 支持 AMQP 协议的消息队列,如:RabbitMQ
支持消息发布和消费
本仓库仅用于浏览,不接受 issue 和 Pull Requests,请前往:https://github.com/imiphp/imi
Composer
本项目可以使用composer安装,遵循psr-4自动加载规则,在你的 composer.json
中加入下面的内容:
然后执行 composer update
安装。
使用说明
可以参考 example
目录示例,包括完整的消息发布和消费功能。
在项目 config/config.php
中配置:
连接池配置:
默认连接池:
连接配置项
属性名称 | 说明 |
---|---|
host | 主机 |
port | 端口 |
user | 用户名 |
vhost | vhost,默认/ |
insist | insist |
loginMethod | 默认AMQPLAIN |
loginResponse | loginResponse |
locale | 默认en_US |
connectionTimeout | 连接超时 |
readWriteTimeout | 读写超时 |
keepalive | keepalive,默认false |
heartbeat | 心跳时间,默认0 |
channelRpcTimeout | 频道 RPC 超时时间,默认0.0 |
sslProtocol | ssl 协议,默认null |
消息定义
继承 Imi\AMQP\Message
类,可在构造方法中对属性修改。
根据需要可以覆盖实现setBodyData
、getBodyData
方法,实现自定义的消息结构。
属性列表:
名称 | 说明 | 默认值 |
---|---|---|
bodyData | 消息主体内容,非字符串 | null |
properties | 属性 | ['content_type' => 'text/plain', 'delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT,] |
routingKey | 路由键 | 空字符串 |
format | 如果设置了,发布的消息是编码后的bodyData ,同理读取时也会解码。实现了Imi\Util\Format\IFormat 的格式化类。支持Json 、PhpSerialize |
null |
mandatory | mandatory标志位 | false |
immediate | immediate标志位 | false |
ticket | ticket | null |
发布者
必选注解:@Publisher
可选注解:@Queue
、@Exchange
、@Connection
不配置 @Connection
注解,可以从连接池中获取连接
消费者
必选注解:@Consumer
可选注解:@Queue
、@Exchange
、@Connection
不配置 @Connection
注解,可以从连接池中获取连接
注解说明
@Publisher
发布者注解
属性名称 | 说明 |
---|---|
queue | 队列名称 |
exchange | 交换机名称 |
routingKey | 路由键 |
@Consumer
消费者注解
属性名称 | 说明 |
---|---|
tag | 消费者标签 |
queue | 队列名称 |
exchange | 交换机名称 |
routingKey | 路由键 |
message | 消息类名,默认:Imi\AMQP\Message |
mandatory | mandatory标志位 |
immediate | immediate标志位 |
ticket | ticket |
@Queue
队列注解
属性名称 | 说明 |
---|---|
name | 队列名称 |
routingKey | 路由键 |
passive | 被动模式,默认false |
durable | 消息队列持久化,默认true |
exclusive | 独占,默认false |
autoDelete | 自动删除,默认false |
nowait | 是否非阻塞,默认false |
arguments | 参数 |
ticket | ticket |
@Exchange
交换机注解
属性名称 | 说明 |
---|---|
name | 交换机名称 |
type | 类型可选:direct 、fanout 、topic 、headers |
passive | 被动模式,默认false |
durable | 消息队列持久化,默认true |
autoDelete | 自动删除,默认false |
internal | 设置是否为rabbitmq内部使用, true 表示是内部使用, false 表示不是内部使用 |
nowait | 是否非阻塞,默认false |
arguments | 参数 |
ticket | ticket |
@Connection
连接注解
属性名称 | 说明 |
---|---|
poolName | 不为 null 时,无视其他属性,直接用该连接池配置。默认为null ,如果host 、port 、user 、password 都未设置,则获取默认的连接池。 |
host | 主机 |
port | 端口 |
user | 用户名 |
vhost | vhost,默认/ |
insist | insist |
loginMethod | 默认AMQPLAIN |
loginResponse | loginResponse |
locale | 默认en_US |
connectionTimeout | 连接超时 |
readWriteTimeout | 读写超时 |
keepalive | keepalive,默认false |
heartbeat | 心跳时间,默认0 |
channelRpcTimeout | 频道 RPC 超时时间,默认0.0 |
sslProtocol | ssl 协议,默认null |
队列组件支持
本组件额外实现了 imiphp/imi-queue 的接口,可以用 Queue 组件的 API 进行调用。
只需要将队列驱动配置为:AMQPQueueDriver
配置示例:
消费者类写法,与imi-queue
组件用法一致。
具体可以参考:<example/AMQP/QueueTest>、<example/ApiServer/Controller/IndexController.php>
免费技术支持
运行环境
版权信息
imi-amqp
遵循 MIT 开源协议发布,并提供免费使用。
捐赠
开源不求盈利,多少都是心意,生活不易,随缘随缘……