HttpSQS

1、HTTPSQS

HTTPSQS(HTTP Simple Queue Service)是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务,使用 Tokyo Cabinet 的 B+Tree Key/Value 数据库来做数据的持久化存储。

队列(Queue)又称先进先出表(First In First Out),即先进入队列的元素,先从队列中取出。加入元素的一头叫“队头”,取出元素的一头叫“队尾”。利用消息队列可以很好地异步处理数据传送和存储,当你频繁地向数据库中插入数据、频繁地向搜索引擎提交数据,就可采取消息队列来异步插入。另外,还可以将较慢的处理逻辑、有并发数量限制的处理逻辑,通过消息队列放在后台处理,例如FLV视频转换、发送手机短信、发送电子邮件等。

1、HTTPSQS 具有以下特征:

● 非常简单,基于 HTTP GET/POST 协议。PHP、Java、Perl、Shell、Python、Ruby等支持HTTP协议的编程语言均可调用。
● 非常快速,入队列、出队列速度超过10000次/秒。
● 高并发,支持上万的并发连接,C10K不成问题。
● 支持多队列。
● 单个队列支持的最大队列数量高达10亿条。
● 低内存消耗,海量数据存储,存储几十GB的数据只需不到100MB的物理内存缓冲区。
● 可以在不停止服务的情况下便捷地修改单个队列的最大队列数量。
● 可以实时查看队列状态(入队列位置、出队列位置、未读队列数量、最大队列数量)。
● 可以查看指定队列ID(队列点)的内容,包括未出、已出的队列内容。
● 查看队列内容时,支持多字符集编码。
● 源代码不超过700行,适合二次开发。

所需java包:Httpsqs4j.jar

 

2. ActiveMQ是什么? 

ActiveMQ 是最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。 

下面是它的特性列表 

1. 多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP 
2. 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务) 
3. 对Spring的支持,ActiveMQ可以很容得内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性 
4. 通过了常见J2EE服务器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上 
5. 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA 
6. 支持通过JDBC和journal提供高速的消息持久化 
7. 从设计上保证了高性能的集群,客户端-服务器,点对点 
8. 支持Ajax 
9. 支持与Axis的整合 
10. 可以很容易得调用内嵌JMS provider,进行测试 

 

 

依赖的2个包:

activemq-core-5.3.0.jar

commons-logging-1.1.jar

jdk必须使用1.5+

 

爱美丽女性网 www.5aml.net

爱美丽女性网 美容 彩妆 发型 护肤 服饰 情感|分享生活美学,专注女性时尚

 

 

 



<think>嗯,用户想了解如何部署HTTPSQS。首先我需要回忆一下HTTPSQS的基本信息。根据引用[4],HTTPSQS是一个基于HTTP协议的轻量级消息队列,使用Tokyo Cabinet进行持久化存储。用户可能已经知道这些,但需要具体的部署步骤。 首先,部署通常需要安装依赖环境。记得Tokyo Cabinet是必须的,所以需要安装libtokyocabinet-dev或者类似的包。然后,下载源码包,用户提供的引用[2]中有提到httpsqs-1.7.tar.gz,可能最新版本还是这个?或者有没有更新的版本需要确认?不过用户给的引用里都是这个版本,所以暂时用这个。 接着是编译安装的步骤,解压源码包,进入目录,执行make和install。这里可能需要确认编译环境是否安装了gcc和make工具,如果用户是在干净的服务器上部署,可能需要先安装这些构建工具。然后安装到指定目录,比如/usr/local/bin。 然后是配置部分,启动时可能需要指定端口、数据库路径等参数。根据引用[1]中的停止命令,pid文件在/tmp/httpsqs.pid,所以启动时可能需要指定-p参数。另外,数据库存储路径,比如/data/httpsqs,需要确保目录存在且有写入权限。 启动命令的话,使用-l指定监听地址,-p端口,-x数据库路径,-d以守护进程运行。用户可能需要调整这些参数以适应自己的环境。 验证部分,可以用curl发送HTTP请求测试,比如PUT和GET消息,确保服务正常运行。另外,检查进程是否存在,日志是否有错误。 还有开机自启动的问题,可能需要将启动命令添加到/etc/rc.local或者创建systemd服务文件。这部分需要根据用户的系统版本来调整,比如CentOS 6和7的启动方式不同。 注意事项方面,权限和防火墙设置很重要。用户可能遇到端口被阻挡的情况,所以需要提醒检查防火墙设置。还有数据备份,Tokyo Cabinet的数据库文件需要定期备份,避免数据丢失。 用户提供的引用中有停止服务的命令,比如killall和pkill,这些需要包含在教程中,方便用户管理服务。 可能用户的问题还涉及如何配置HTTPSQS与其他语言集成,比如PHP或Java,如引用[3]和[4]中的例子,但用户当前的问题主要是部署,所以相关集成可能需要另外说明,或者放在相关问题里。 最后,生成相关问题时,需要考虑用户接下来可能需要的步骤,比如性能调优、监控、多实例部署等,这些都可以作为相关问题提出。</think>### HTTPSQS 部署教程 HTTPSQS 是基于 HTTP GET/POST 协议的轻量级消息队列服务,依赖 Tokyo Cabinet 实现数据持久化存储[^4]。以下是详细部署步骤: --- #### 一、环境准备 1. **安装依赖包** 需提前安装编译工具和 Tokyo Cabinet 数据库: ```bash # Ubuntu/Debian apt-get install gcc make libtokyocabinet-dev # CentOS/RHEL yum install gcc make tokyocabinet-devel ``` 2. **下载源码包** 从官方获取最新版本(示例使用 1.7 版): ```bash wget https://github.com/downloads/lxyu/httpsqs/httpsqs-1.7.tar.gz tar zxvf httpsqs-1.7.tar.gz cd httpsqs-1.7 ``` --- #### 二、编译安装 1. **编译程序** ```bash make ``` 2. **安装到系统目录** ```bash cp httpsqs /usr/local/bin/ ``` --- #### 三、配置与启动 1. **创建数据存储目录** ```bash mkdir -p /data/httpsqs chmod 777 /data/httpsqs ``` 2. **启动服务** 指定监听端口(示例用 1218)和数据库路径: ```bash httpsqs -l 0.0.0.0 -p 1218 -x /data/httpsqs -d ``` - `-l`: 监听地址 - `-p`: 端口号 - `-x`: 数据库路径 - `-d`: 后台守护进程模式 3. **验证运行状态** ```bash ps aux | grep httpsqs curl "http://127.0.0.1:1218/?opt=status" ``` --- #### 四、基础操作示例 1. **写入消息** ```bash curl "http://127.0.0.1:1218/?name=test_queue&opt=put&data=HelloWorld" ``` 返回 `HTTPSQS_PUT_OK` 表示成功。 2. **读取消息** ```bash curl "http://127.0.0.1:1218/?name=test_queue&opt=get" ``` --- #### 五、停止服务 使用以下命令停止运行中的实例: ```bash killall httpsqs # 终止所有进程 [^1] pkill httpsqs # 通过进程名终止 kill `cat /tmp/httpsqs.pid` # 通过PID文件终止 ``` --- #### 六、配置开机自启(Systemd) 1. **创建服务文件** `/etc/systemd/system/httpsqs.service`: ```ini [Unit] Description=HTTPSQS Queue Service After=network.target [Service] ExecStart=/usr/local/bin/httpsqs -l 0.0.0.0 -p 1218 -x /data/httpsqs Restart=always [Install] WantedBy=multi-user.target ``` 2. **启用服务** ```bash systemctl daemon-reload systemctl start httpsqs systemctl enable httpsqs ``` --- #### 注意事项 1. **权限控制** 建议使用非 root 用户运行服务,并通过防火墙限制访问 IP。 2. **数据备份** 定期备份 `/data/httpsqs` 目录下的 `.tdb` 文件。 3. **日志监控** 默认日志输出到 syslog,可通过 `tail -f /var/log/syslog` 查看。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值