PHP中的AMQP类
PHP中的AMQP类
标签(空格分隔): php,amqp
官网地址:http://docs.php.net/manual/da/book.amqp.php
AMQPConnection
AMQPConnection {
/* Methods */
// 与AMQP代理建立连接
public bool connect ( void )
// 构造函数 $credentials 可以理解为配置项的数组
// $config = [
// 'host' => '127.0.0.1',
// 'port' => '5672',
// 'vhost' => '/',
// 'login' => 'guest',
// 'password' => 'guest'
// ];
public __construct ([ array $credentials = array() ] )
// 断开连接 返回bool值
public bool disconnect ( void )
public bool isConnected ( void )
public bool reconnect ( void )
// 这个单独说下:默认值为: '/', 就是虚拟主机
public bool setVhost ( string $vhost )
// 下面就是一些Geter、Seter方法了 默认用户就是:guest
public string getHost ( void )
public string getLogin ( void )
public string getPassword ( void )
public int getPort ( void )
public string getVhost ( void )
public bool setHost ( string $host )
public bool setLogin ( string $login )
public bool setPassword ( string $password )
public bool setPort ( int $port )
}
AMQPConnection::connect — 与AMQP代理建立连接。
AMQPConnection::__construct — 创建 AMQPConnection 的实例
AMQPConnection::disconnect — 关闭与AMQP代理的连接。
AMQPConnection::getHost — 获取配置的主机
AMQPConnection::getLogin — 获取配置的登录名
AMQPConnection::getPassword — 获取配置的密码
AMQPConnection::getPort — 获取配置的端口
AMQPConnection::getVhost — 获取配置的虚拟主机
AMQPConnection::isConnected — 确定AMQPConnection对象是否连接到代理。
AMQPConnection::reconnect — 关闭任何打开的连接,并创建一个与AMQP代理的新连接。
AMQPConnection::setHost — 设置 amqp 主机。
AMQPConnection::setLogin — 设置登录名。
AMQPConnection::setPassword — 设置密码。
AMQPConnection::setPort — 设置端口。
AMQPConnection::setVhost — 设置 amqp 虚拟主机
AMQPChannel
为了一个AMQP的链接,创建一个channel instance(通道实例)
AMQPChannel {
/* Metoder */
public void commitTransaction ( void )
__construct ( AMQPConnection $amqp_connection )
public void isConnected ( void )
// 不知道具体干啥用的
public void qos ( int $size , int $count )
public void rollbackTransaction ( void )
// 这个参数设置,接收的最大消息数量
public void setPrefetchCount ( int $count )
public void setPrefetchSize ( int $size )
public void startTransaction ( void )
}
AMQPChannel::commitTransaction — 提交挂起的事务
AMQPChannel::__construct — 创建 AMQPChannel 对象的实例
AMQPChannel::isConnected — 检查信道连接
AMQPChannel::qos — 为给定通道设置服务质量设置
AMQPChannel::rollbackTransaction — 回滚事务
AMQPChannel::setPrefetchCount — 设置要从代理预取的消息数
AMQPChannel::setPrefetchSize — 设置窗口大小以从代理预取
AMQPChannel::startTransaction — 启动事务
AMQPExchange
交换机
AMQPExchange {
/* Methods */
// 交换机绑定队列
public bool bind ( string $destination_exchange_name , string $source_exchange_name , string $routing_key )
public __construct ( AMQPChannel $amqp_channel )
public int declare ( void )
public bool delete ([ int $flags = AMQP_NOPARAM ] )
public mixed getArgument ( string $key )
public array getArguments ( void )
public int getFlags ( void )
public string getName ( void )
public string getType ( void )
// 发送消息
public bool publish ( string $message , string $routing_key [, int $flags = AMQP_NOPARAM [, array $attributes = array() ]] )
public void setArgument ( string $key , mixed $value )
public void setArguments ( array $arguments )
// AMQP_DURABLE, AMQP_PASSIVE
// (and AMQP_DURABLE, if librabbitmq version >= 0.5.3)
public void setFlags ( int $flags )
// 设置交换机名称:最好使用数字、字母、- _ .
// 组合(区分大小写,但最好使用小写)
// 也不要使用amq带头(内置的exchange都是使用amq.开头)
// 如果申明一个已存在的exchange name,如果type不一致会抛出异常
public void setName ( string $exchange_name )
// 目前四种模式:AMQP_EX_TYPE_DIRECT,
// AMQP_EX_TYPE_FANOUT, AMQP_EX_TYPE_HEADERS, AMQP_EX_TYPE_TOPIC
public string setType ( string $exchange_type )
}
setFlags含义:
1. passive:声明一个已存在的交换器的,如果不存在将抛出异常,这个一般用在consume端。因为一般produce端创建,在consume端建议设置成AMQP_PASSIVE,防止consume创建exchange
2. durable:持久exchange,该交换器将在broker重启后生效,一般常使用该选项.
3. auto_delete:该交换器将在没有消息队列绑定时自动删除。一个从未绑定任何队列的交换器不会自动删除。解释有点绕。说明下吧,当有队列bind到auto_delete的交换器上之后,删除该队列。此时交换器也会删除。一般创建为临时交换器。
AMQPExchange::bind — 绑定到另一个交换机
AMQPExchange::__construct — 创建 AMQPExchange 的实例
AMQPExchange::declare — 声明一个新的交换机。
AMQPExchange::delete — 删除交换机。
AMQPExchange::getArgument — 获取与给定键关联的参数
AMQPExchange::getArguments — 获取给定交换机上设置的所有参数
AMQPExchange::getFlags — 获取标志位掩码
AMQPExchange::getName — 获取配置的名称
AMQPExchange::getType — 获取配置的类型
AMQPExchange::publish — 向交换机发布消息。
AMQPExchange::setArgument — 设置给定键的值
AMQPExchange::setArguments — 设置交换机上的所有参数
AMQPExchange::setFlags — 在交换机设置标志
AMQPExchange::setName — 设置交换机的名称
AMQPExchange::setType — 设置交换机所的类型
AMQPQueue
队列
AMQPQueue {
/* Metoder */
// 手动确认
public bool ack ( int $delivery_tag [, int $flags = AMQP_NOPARAM ] )
// 与交换机绑定
public bool bind ( string $exchange_name , string $routing_key )
// 取消
public bool cancel ([ string $consumer_tag = "" ] )
// 实例化
public __construct ( AMQPConnection $amqp_connection )
// 消费数据
public void consume ( callable $callback [, int $flags = AMQP_NOPARAM ] )
// 声明队列
public int declare ( void )
// 删除队列
publicbool delete ( void )
// 非阻塞获取数据
public mixed get ([ int $flags ] )
public mixed getArgument ( string $key )
public array getArguments ( void )
public int getFlags ( void )
public string getName ( void )
// 用法ack相反,表示not ack.
public void nack ( string $delivery_tag [, string $flags = AMQP_NOPARAM ] )
public bool purge ( void )
public void setArgument ( string $key , mixed $value )
public void setArguments ( array $arguments )
// AMQP_DURABLE, AMQP_PASSIVE,
// AMQP_EXCLUSIVE, AMQP_AUTODELETE.
public void setFlags ( int $flags )
// 设置队列名称
public void setName ( string $queue_name )
public bool unbind ( string $exchange_name , string $routing_key )
}
::setFlags ( int $flags )
可选参数:AMQP_DURABLE, AMQP_PASSIVE,AMQP_EXCLUSIVE, AMQP_AUTODELETE
默认:auto_delete
1. auto_delete:当队列中有消费者,则队列存在,当没有消费者链接,则队列删除
2. durable:持久化,队列不删除,注意仅仅是队列持久,消息不持久(消息的持久在publish时的增加属性delivery_mode=2)。消费的消息,从队列里删除,未消费的消息保存在队列中,不需要关注是否有消费者。最实用
3. passive:声明一个1个已存在的队列。意义不大,如果队列不存在会抛出异常。
4. exclusive:排他队列,如果一个队列被声明为排他队列,该队列仅对首次声明它的连接可见,并在连接断开时自动删除
AMQPQueue::ack — 确认收到消息
AMQPQueue::bind — 将给定队列绑定到交易所上的路由密钥。
AMQPQueue::cancel — 取消队列绑定。
AMQPQueue::__construct — 创建 AMQPQueue 对象的实例
AMQPQueue::consume — 使用队列中的消息
AMQPQueue::declare — 声明一个新队列
AMQPQueue::delete — 删除队列及其内容。
AMQPQueue::get — 从队列中检索下一条消息。
AMQPQueue::getArgument — 获取与给定键关联的参数
AMQPQueue::getArguments — 获取给定队列上设置的所有参数
AMQPQueue::getFlags — 获取标志位掩码
AMQPQueue::getName — 获取配置的名称
AMQPQueue::nack — 将消息标记为显式未确认。
AMQPQueue::purge — 清除队列的内容
AMQPQueue::setArgument — 设置给定键的值
AMQPQueue::setArguments — 设置队列上的所有参数
AMQPQueue::setFlags — 设置队列标志
AMQPQueue::setName — 设置队列名称
AMQPEnvelope
AMQPEnvelope {
/* Metoder */
public string getAppId ( void )
public string getBody ( void )
public string getContentEncoding ( void )
public string getContentType ( void )
public string getCorrelationId ( void )
public string getDeliveryTag ( void )
public string getExchange ( void )
public string getExpiration ( void )
public string getHeader ( string $header_key )
public array getHeaders ( void )
public string getMessageId ( void )
public string getPriority ( void )
public string getReplyTo ( void )
public string getRoutingKey ( void )
public string getTimeStamp ( void )
public string getType ( void )
public string getUserId ( void )
public bool isRedelivery ( void )
}
AMQPEnvelope::getAppId — 获取消息 appid
AMQPEnvelope::getBody — 获取消息正文
AMQPEnvelope::getContentEncoding — 获取消息内容编码
AMQPEnvelope::getContentType — 获取消息内容类型
AMQPEnvelope::getCorrelationId — 获取消息关联 ID
AMQPEnvelope::getDeliveryTag — 获取消息传递标记
AMQPEnvelope::getExchange — 获取消息交换
AMQPEnvelope::getExpiration — 获取消息过期
AMQPEnvelope::getHeader — 获取特定的消息标头
AMQPEnvelope::getHeaders — 获取消息标头
AMQPEnvelope::getMessageId — 获取消息 ID
AMQPEnvelope::getPriority — 获取消息优先级
AMQPEnvelope::getReplyTo — 获取消息回复
AMQPEnvelope::getRoutingKey — 获取消息路由密钥
AMQPEnvelope::getTimeStamp — 获取消息时间戳
AMQPEnvelope::getType — 获取消息类型
AMQPEnvelope::getUserId — 获取消息用户 ID
AMQPEnvelope::isRedelivery — 这是否是消息的重新传递
// 命令行打印的结果
class AMQPEnvelope#4 (20) {
private $content_type =>
string(10) "text/plain"
private $content_encoding =>
string(0) ""
private $headers =>
array(0) {
}
private $delivery_mode =>
int(2)
private $priority =>
int(0)
private $correlation_id =>
string(0) ""
private $reply_to =>
string(0) ""
private $expiration =>
string(0) ""
private $message_id =>
string(0) ""
private $timestamp =>
int(0)
private $type =>
string(0) ""
private $user_id =>
string(0) ""
private $app_id =>
string(0) ""
private $cluster_id =>
string(0) ""
private $body =>
string(12) "HELLO WORLD1"
private $consumer_tag =>
string(31) "amq.ctag-lE1EkfMpX0jyB5mThY1Tjg"
private $delivery_tag =>
int(2)
private $is_redelivery =>
bool(false)
private $exchange_name =>
string(11) "exchange_02"
private $routing_key =>
string(8) "queue_02"
}
PHP中的AMQP类的更多相关文章
- Java Native Interfce三在JNI中使用Java类的普通方法与变量
本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 前面我们学习了如何在JNI中通过参数来使用J ...
- 换个新的思路 代替解压jar包 例证:wechat4j 框架中的templateMsg类
很多朋友在写java的程序的时候都喜欢用第三方的jar包和框架,有可能遇到jar包中的内容已经跟不上官方开发者文档的更新,导致部分内容出错了,这个时候可能就要放弃这个jar的使用,但是这个jar中的其 ...
- 标准C++中的string类的用法总结
标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...
- 带有静态方法的类(java中的math类)
带有静态方法的类通常(虽然不一定是这样)不打算被初始化. 可以用私有构造函数来限制非抽象类被初始化. 例如,java中的math类.它让构造函数标记为私有,所以你无法创建Math的实例.但Math类却 ...
- java-API中的常用类,新特性之-泛型,高级For循环,可变参数
API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构 ...
- C++中如何定义类和对象?
在C++语言中,对象的类型被称为类,类代表了某一批对象的共性和特征. 类是对象的抽象,而对象是类的具体实例.如同C中的结构体一样,我们要先定义一个结构体,再使用结构体去定义一个变量.同一个结构体可以定 ...
- Oracle数据库中调用Java类开发存储过程、函数的方法
Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日 浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...
- 【转载】C++中的基类与派生类
转自:http://www.cnblogs.com/sujz/articles/2044365.html 派生类的继承方式总结: 继承方式 说明 public 基类的public和protected的 ...
- 回调函数中使用MFC类的成员或对话框控件的简单方法
在MFC的很多程序中,常常需要在回调函数中调用MFC类的类成员变量.类成员函数,亦或者对话框控件的句柄.由于回调函数是基于C编程的Windows SDK的技术,而类成员又有this指针客观条件限制.. ...
- Java ClassLoader基础及加载不同依赖 Jar 中的公共类
转载自:最新内容及最清晰格式请见 http://www.trinea.cn/android/java-loader-common-class/ 本文主要介绍 ClassLoader 的基础知识,Cla ...
随机推荐
- 使用Docker搭建MinIO集群服务
概述 因为在云服务器上默认只有一块磁盘,如果直接在系统盘上安装MinIO,会被拒绝,所以这里采用Docker的方式绕过这一限制 操作环境 操作系统 CentOS 7.9 MinIO版本 RELEASE ...
- 非侵入式入侵 —— Web缓存污染与请求走私
作者:vivo 互联网安全团队- Gui Mingcheng 本文介绍了两种攻击者无需直接接触服务端即可攻击和影响用户行为的安全漏洞 -- Web缓存污染与请求走私.Web缓存污染旨在通过攻击者向缓存 ...
- 【读书笔记】排列研究-置换角度(分解为Products Of Cycles) 含GroupExploer使用
upd 2020-08-06 23:11完成了最初稿 目录 定义 开胃菜 entrée 群论角度 应用:几何变换 当然要从第一类斯特林数的角度来考虑一下 一个排列的type定义 排旗公式 应用-共轭排 ...
- 剑指 offer 第 2 天
第 2 天 链表(简单) 剑指 Offer 06. 从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head = [1,3,2] 输出:[2, ...
- 3d基础 - 从模型坐标到屏幕坐标
在 3D 引擎中,场景通常被描述为三维空间中的模型或对象,每个模型对象由许多三维顶点组成.最终,这些模型对象将在平面屏幕上呈现和显示. 渲染场景始终相对于摄像机,因此,还必须相对于摄像机的视图定义场景 ...
- data.frame数据框操作——R语言
统计分析中最常见的原始数据形式是类似于数据库表或Excel数据表的形式. 这样形式的数据在R中叫做数据框(data.frame). 数据框类似于一个矩阵,但各列允许有不同类型:数值型向量.因子.字符型 ...
- R语言数据加工厂——plyr包使用
plyr包是Hadley Wickham大神为解决split – apply – combine问题而写的一个包,其动机在与提供超越for循环和内置的apply函数族的一个一揽子解决方案.使用plyr ...
- [Linux]常用命令之【tar/zip/unzip/gzip/gunzip】
1 tar .tar与.gz有什么联系与区别? .tar 只是进行打包,并没有压缩. 则: 用tar-cvf进行打包 用tar-xvf进行解包. .tar.gz 是既打包又压缩 ,则: tar –cz ...
- 前端里那些你不知道的事儿之 【window.onload】
作者:京东科技 孙凯 一.前言 相信很多前端开发者在做项目时同时也都做过页面性能优化,这不单是前端的必备职业技能,也是考验一个前端基础是否扎实的考点,而性能指标也通常是每一个开发者的绩效之一.尤其马上 ...
- LeeCode数组问题:二分查找
LeeCode 704 二分查找 题目描述: 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标, ...