参考资料
MetaQ全称Metamorphosis,是一个高性能、高可用、可扩展的分布式消息中间件,思路源于Linkedin的Kafka,但并不是Kafka的一个Copy。MetaQ具有消息存储顺序、吞吐量达、支持本地和XA事务等特性,适用于大吞吐量、顺序消息、广播、日志数据传输等场景,目前在淘宝和支付宝有着广泛的应用。
MetaQ是一款完全队列模型的消息中间件,服务器使用Java编写,可在多种软硬件平台上部署。客户端支持Java、C++。单台服务器可支持1W+个消息队列,通过扩容服务器,队列数量几乎可以任意横向扩展。每个队列都是持久化、长度无限(取决于磁盘空间大小),并且可以从队列任意位置开始消费。
MetaQ对外提供的是一个队列服务,内部实现也是完全的队列模型,这里的队列是持久化的磁盘队列,具有非常高的可靠性,并充分利用了操作系统缓存来提高性能。
MetaQ实现了一个重要的功能:挡住前端的数据洪峰,保证后端系统的稳定性。
适用场景
- 日志传输,高吞吐量的日志传输
- 消息广播功能
- 数据的顺序同步功能
- 分布式环境下的消息路由,对顺序和可靠性有极高要求的场景。
整体架构
MetaQ整体架构