LightQ:一个开源的高性能代理消息队列

  • 李小兵

2015 年 4 月 1 日

话题:语言 & 开发架构

LightQ是一个基于 MIT 协议开源的高性能代理消息队列,它支持瞬态(每秒 1M 的性能)和持久化(每秒 300k 左右的性能)两种队列。LightQ 的持久化队列类似于Kafka,即首先数据写入到文件,而由消费者再从文件中读取数据。LightQ 的主要特征包括:

  • 支持瞬态和持久化两种队列,这就类似于 Kafka,生产者(Producer)将数据保存到文件中,消费者从文件中再读取数据;
  • 较高的安全性,每个话题(Topic)都必须通过用户 ID 和密码认证;
  • 支持嵌入到 Header Only 工程;
  • 消费者(Consumer)支持负载均衡环境,在轮询过程中,消费者就可以获得消息;
  • 消费者即订阅者(Subscriber),每个消费者都能获得消息的一个拷贝;
  • 单个话题能够支持发布者(Publisher)/ 订阅者模型和管道模型;
  • 单个话题可以拥有多个生产者或消费者;
  • 支持以 JSON 协议的数据格式创建话题和连接话题;
  • 支持 C++11、日志记录;
  • 能够为话题、消费者、生产者动态分配端口;
  • 支持集群环境;
  • Client API 支持 C、Go、Java、Rust、Lua、Ruby 等语言。

GitHub 上还提供了 LightQ 协议的示例代码,如创建话题、消费者连接到话题、生产者连接到话题以及获得话题的统计信息(如状态、订阅者数、队列大小等信息)。

请读者注意,目前,LightQ 只是一个初始版本,且还不能用于生产环境。LightQ 的作者还做了一些性能测试,如有关100M 消息数据的性能测试。更多关于 LightQ 信息,请登录其官网查看。


感谢徐川对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流。

语言 & 开发架构