`
wbj0110
  • 浏览: 1603221 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

nodeMQ 基于nodejs和Redis的开源消息队列系统

阅读更多

nodeMQ 是基于Nodejs 和Redis 开发的消息队列系统,目前仅仅是beta版本。

支持简单的put get操作,采用http协议访问。项目地址:https://github.com/lnmp/nodemq

Redis client 采用的是 https://github.com/tristandunn/node-redis-client

基于Redis 数据库,可以方便进行性能调优,和支持分布式的消息队列,nodejs 自身又可作为webserver,二次开发也非常方便,全部代码才100多行,这仅仅是第一个beta版本,后面考虑添加监控运行状态的功能和提升性能

==============================================
使用说明
put 操作

curl "http://10.0.0.106:8000/put?data=xxxxxxxxxx"

get 操作

curl "http://10.0.0.106:8000/get"

===========================================
安装&使用
安装nodejs和Redis之后,

git clone https://github.com/lnmp/nodemq.git
cd nodemq

config.js 负责配置nodemq server 和redis的端口和域名

运行nodemq 也非常简单

node index.js

==============================================
压力测试数据 原生配置文件,对Redis没有进行任何优化

put操作压力测试

[libo@search106 src]$ webbench -t 10 -c 100 http://10.0.0.106:8000/put?data=xxxxxxxxxx
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
 
Benchmarking: GET http://10.0.0.106:8000/put?data=xxxxxxxxxx
100 clients, running 10 sec.
 
Speed=242718 pages/min, 307442 bytes/sec.
Requests: 40453 susceed, 0 failed.
 
 
[libo@search106 src]$ webbench -t 10 -c 300 http://10.0.0.106:8000/put?data=xxxxxxxxxx
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
 
Benchmarking: GET http://10.0.0.106:8000/put?data=xxxxxxxxxx
300 clients, running 10 sec.
 
Speed=247836 pages/min, 315873 bytes/sec.
Requests: 41306 susceed, 0 failed.
 
 
[libo@search106 src]$ webbench -t 10 -c 500 http://10.0.0.106:8000/put?data=xxxxxxxxxx
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
 
Benchmarking: GET http://10.0.0.106:8000/put?data=xxxxxxxxxx
500 clients, running 10 sec.
 
Speed=237558 pages/min, 304866 bytes/sec.
Requests: 39593 susceed, 0 failed.

get 操作压力测试

[libo@search106 src]$ webbench -t 10 -c 100 http://10.0.0.106:8000/get
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
 
Benchmarking: GET http://10.0.0.106:8000/get
100 clients, running 10 sec.
 
Speed=287718 pages/min, 359655 bytes/sec.
Requests: 47953 susceed, 0 failed.
 
 
 
[libo@search106 src]$ webbench -t 10 -c 300 http://10.0.0.106:8000/get
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
 
Benchmarking: GET http://10.0.0.106:8000/get
300 clients, running 10 sec.
 
Speed=298908 pages/min, 373635 bytes/sec.
Requests: 49818 susceed, 0 failed.
 
 
[libo@search106 src]$ webbench -t 10 -c 500 http://10.0.0.106:8000/get
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
 
Benchmarking: GET http://10.0.0.106:8000/get
500 clients, running 10 sec.
 
Speed=294066 pages/min, 367582 bytes/sec.
Requests: 49011 susceed, 0 failed.

 

分享到:
评论

相关推荐

    Nodejs实现redis数据Json格式的导出

    而Redis则是一款开源、高性能的键值存储系统,常用于缓存、消息队列等场景。 首先,我们来看`outputFs.js`文件,这是自定义的读写数据库。在Node.js中,文件系统(FS)模块是内置的,用于处理文件和目录的操作。`...

    nodejs、redis、nginx自动安装配置脚本

    Redis是一个开源的、支持网络的、键值对存储数据库,常用于缓存和消息队列。自动安装Redis的脚本可以包含以下步骤: 1. 下载源码:`wget http://download.redis.io/releases/redis-X.Y.Z.tar.gz`(替换X.Y.Z为所需...

    基于nodejs的消息中心

    在Node.js中,可以使用各种库来构建消息中心,如RabbitMQ、Kafka或Redis等消息队列系统,它们都提供了强大的发布/订阅功能。另外,还可以使用WebSocket来实现实时双向通信,这对于需要即时反馈的应用尤其有用。 **...

    Bull:用于在 NodeJS 中处理分布式作业和消息的队列包-开源

    最快、最可靠、基于 Redis 的 Node.js 队列。 为坚如磐石的稳定性和原子性精心编写。 如果你想开始使用完全用 Typescript 编写的 Bull 的下一个主要版本,欢迎来到这里的新仓库。 否则,非常欢迎您仍然使用 Bull,这...

    nodejs聊天室,redis存储,sokect通信

    Redis是一个开源的、高性能的键值数据库,特别适合于存储和检索大量的实时数据。在这个聊天室中,Redis将用于存储用户的会话信息、聊天记录、在线用户列表以及未读消息计数等。它的优点在于数据读写速度快,支持多种...

    电影推荐系统,基于Spark实现,技术栈包括Spring,Redis,MongoDB等等.zip

    Redis是一个高性能的键值存储系统,常用于缓存和消息队列。在推荐系统中,Redis可以存储用户会话信息,快速响应用户的推荐请求。同时,它也可以作为消息队列,处理异步任务,如数据刷新或模型更新,确保系统的实时性...

    nodejs + express + mysql +log4js+redis

    Redis是一款高性能的键值存储系统,常用于缓存、消息队列等场景。在本项目中,Redis被用来存储临时数据,如用户的会话信息,以提高数据读取速度和减轻数据库的压力。通过将频繁访问的数据存入内存,Redis能提供近乎...

    Docker + Nodejs + Kafka + Redis + MySQL搭建简单秒杀环境

    Redis是一个开源的、基于内存的数据结构存储系统,可以用作数据库、缓存和消息代理。在秒杀系统中,Redis作为一个快速的键值存储,用于保存库存(counter)信息,可以高效地处理大量并发读写操作。 4. **Kafka**:...

    Node-Registration-Redis:NodeJS+Express+ejs 用于注册网页,连接Redis

    Redis是一个开源的、内存中的数据结构存储系统,常用于做缓存和消息队列。在这里,Redis被用作用户注册信息的存储库。由于其高速读写性能,Redis适合存储需要快速访问的数据,如登录会话或用户信息。项目可能使用了...

    chat-redis-nodejs-app:基于Node.js + Redis的简单聊天应用程序

    2. **Redis**:Redis是一个开源的、高速的键值存储系统,常用于数据库、缓存和消息中间件。在这个聊天应用中,Redis可能被用作消息队列,存储和转发用户之间的聊天记录。 3. **实时通信**:Node.js的事件驱动机制和...

    nodeJS学习的课程作业

    - **特点与优势**:了解 Redis 的主要特性和应用场景,例如作为缓存、消息队列或实时数据分析工具。 #### 六、Redis 的安装与配置 - **安装过程**:参照官方文档或第三方教程,根据操作系统类型(Windows、Linux ...

    node-js-redis-queue

    标题“node-js-redis-queue”表明我们正在讨论一个基于Node.js和Redis的队列系统。这个系统可能用于处理后台任务、批量操作或者实现异步处理。Node.js是JavaScript的一个运行环境,它允许开发者在服务器端使用...

    Nodejs-Advanced-Concepts-Implementation:使用Redis实现数据缓存,自动无头浏览器测试,使用Node.js,MongoDb,Travis和Redis进行持续集成和可扩展ImageFile上传

    首先,**Redis** 是一个开源的内存数据结构存储系统,常用于数据库、缓存和消息代理。在Node.js应用中,Redis提供了高速的数据读写能力,对于需要快速响应的场景,如实时聊天、计数器或短暂存储中间结果,是理想的...

    携程技术合集 2018.pdf

    3. 消息队列:消息队列的使用是处理大规模并发请求的常见策略,能够有效地解耦系统组件,提高系统吞吐量和可伸缩性。 4. 缓存:在后端系统中广泛应用缓存技术,如Redis,以提高数据读取速度,减轻数据库压力,提升...

    简单布局centos安装node流程,快速易懂

    Redis是一个开源的、基于键值对的数据结构存储系统,常被用作数据库、缓存和消息代理。安装Redis的命令如下: ``` yum install redis ``` 虽然Redis的具体用途在描述中未详细说明,但其常见用途包括存储会话数据、...

    proxiplay:用于 Raspberry Pi 的 Wifi 接近系统。 在 Java 和 NodeJS 上运行。 需要用于数据包嗅探的 horst 和用于音乐流的 VLC

    4. **NodeJS 与 Java 集成**:两个语言可以通过消息队列(如 RabbitMQ 或 Redis)或者直接 API 调用来协同工作。 **horst 数据包嗅探工具:** 1. **数据包捕获**:horst 是一个用于 Wi-Fi 数据包嗅探的工具,可能...

    koa-server.zip

    5. **Redis**: 高性能的键值对数据存储系统,常作为缓存和消息队列使用。项目中的Redis工具可能用于快速读写操作或存储临时数据。 6. **`restId`**: 这个特性可能是为了便于追踪每个HTTP请求,通过为请求添加唯一...

Global site tag (gtag.js) - Google Analytics