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 )关注我们,并与我们的编辑和其他读者朋友交流。
评论