完成上述步骤后,就可以进行安装HTTPSQS了。最后只需要启动HTTPSQS服务进程即可。因为HTTPSQS队列为空,所以返回结果为HTTPSQS_ERROR。检查HTTPSQS是否已经成功运行,可以查看是否存在主进程,如以下代码所示。......
2023-11-04
HTTPSQS是一款用于解决消息队列的开源软件,能够高效地运行在BSD、Linux等服务器上。HTTPSQS拥有Tokyo Tyrant数据持久化的特性,也拥有Memcache大内存储存的功能,极大地提高了数据完整性和队列吞吐量。与Memcache一样,HTTPSQS也是使用异步事件触发来唤醒进程的,能够确保数据及时入队和出队,如图8-4所示。
图8-4中,数据首先由接口提交给HTTPSQS队列服务器,HTTPSQS内置有过滤器,它能够对数据进行验证或加密;然后将数据按先来先到的规则从低到高进行列队,并且为每个队列添加唯一的pos值,一个队列占一块储存区(相同于数据表),一个队列里最多可以存放10亿条数据。
图8-4 HTTPSQS队列数据过程(www.chuimin.cn)
数据出队时,由先入先出的规则进行出队,出队时需要经过验证器,验证器会对队列进行校验,例如密码是否正确等。最后由MVC程序处理出队的数据,例如将数据永久存放到数据库、发送到邮件系统、手机短信系统等,完成整个消息队列的过程。
需要说明的是,在数据入队后HTTPSQS并不能监控数据何时到达,所以并不能自动将数据推出队列,但是使用Linux的计划任务或者监控脚本,即可实现自动出队。与国外成熟的消息队列软件相比,HTTPSQS为了提高性能简化了过滤器、验证器并且只提供单一的出入队方式,使得整个软件体积不到900KB,对于追求性能的网站再合适不过了。关于HTTPSQS的更多介绍,读者可以查看项目托管地址http://code.google.com/p/httpsqs/。接下来将全面介绍HTTPSQS的实战应用,本节内容需要读者掌握基本的Linux网络知识。
有关PHP MVC开发实战的文章
完成上述步骤后,就可以进行安装HTTPSQS了。最后只需要启动HTTPSQS服务进程即可。因为HTTPSQS队列为空,所以返回结果为HTTPSQS_ERROR。检查HTTPSQS是否已经成功运行,可以查看是否存在主进程,如以下代码所示。......
2023-11-04
熟悉Web开发的读者经过前面介绍的HTTPSQS测试,相信已经了解了怎样在PHP中提交数据入队。同时,HTTPSQS还提供了多种语言的类库,用于实现HTTPSQS入队及出队的所有操作,由于目前还没有介绍ThinkPHP扩展,所以这里不使用作者提供的类库,而是使用PHP内置的CURL函数。这里将使用HTTPSQS处理日志信息,如以下代码所示。下面将使用PHP解释器实现一个简单的HTTPSQS监控脚本。......
2023-11-04
PHP 5后的版本借鉴了大量Java思想,得益于早期PHP面向过程编程支持,PHP在实现MVC设计中变得较灵活、易用。但是随着PHP 5.x的到来,各种MVC框架的出现,尤其Zend推出的Zend Framework,彻底地改变了PHP状况,使得PHP也能够实现优雅的Web编程。MVC设计模式将使代码将变得简洁。但是在MVC设计模式中,Index称为动作。当然,MVC只是一种设计模式,在开源的PHP编程世界中,已经拥有众多的MVC编程框架。......
2023-11-04
前面已经简单介绍过ThinkPHP视图引擎,这些标签处理机制类似于JSP tag,使用XML作为标签的渲染方式,开发人员可以方便地在网页中嵌入XML标签,然后由ThinkPHP视图引擎解释成标准的PHP代码。ThinkPHP的视图引擎之所以高效,主要体现在它的标签扩展性。ThinkPHP的视图标签扩展性够完美地与后台控制器代码相结合,例如在Smarty中使用函数功能,首先需要在后台PHP代码注册,而在ThinkPHP中完全不需要,如以下代码所示。......
2023-11-04
下面通过示例代码,演示Cookie函数的实际应用。Cookie能够存放包括中文在内的字符,但长度需要控制在225个字符之内。通过前面的学习,相信读者已经能够掌握Session及Cookie的操作了。虽然Cookie存放于客户端,但是并不意味着Cookie不适合用于会员验证等场景。所以很多网站会使用加密的方式存放Cookie用户名及密码,甚至结合软件与硬件签名实现高度安全的Cookie。总而言之,使用Cookie存放登录数据是可行的,但要做好加密与解密相关操作。......
2023-11-04
系统共支持7种模式扩展,下面将分别对最常用的几种模式进行介绍。表11-1 CURD操作接口如表11-1所示,参数$data表示传入或返回的数据信息;参数$options表示返回当前操作的模型名称及表前缀。......
2023-11-04
Eclipse是IBM的一个商业项目,2001年11月起IBM将Eclipse贡献给开源社区,从此奠定了Eclipse的地位。Eclipse通过PDT插件来提供PHP开发支持,Eclipse PDT能够让编写PHP变得简单和高效,下面将介绍Eclipse PDT的安装和使用。Eclipse PDT的安装有两种方式,一种是直接通过Eclipse的扩展进行安装;另一种是下载带PDT插件的Eclipse。下面将以Eclipse3.5.2作为基础,讲解Eclipse PDT插件的安装过程。如果下载带PDT插件的Eclipse,只需要双击Eclipse启动程序即可,此时Eclipse就提供了完美的PHP编程支持。......
2023-11-04
图12-2 SOAP服务如果服务没有开启,需要在PHP配置文件中开启,如以下代码所示。其中参数1表示SOA服务描述文件,即WSDL文件,该文件是SOAP通信的核心;参数2表示SOAP协议版本,常用的版本有1.0及1.2,本章内容及示例全部基于SOAP 1.2版本实现。使用普通的Firebug等插件不能获取到异常信息,而断点调试是PHP的弱项,所以调试问题将会是SOAP开发首要面对的问题。......
2023-11-04
相关推荐