METAQ是完全的队列模型消息中间件,服务器使用java编写,可在多种硬件平台部署,客户端支持java,C++编程语言,单台服务器支持1W以上的消息队列,通过扩容服务器,队列数几乎可任意横向扩展。每个队列都是持久化,长度无限(取决于磁盘大小)并且可以从队列任意位置开始消费
特点 :
· 生产者,服务器和消费者都可分布式
· 消息存储顺写
· 性能极高,吞吐量大
· 支持消息顺序
· 客户端pull,随机读,批量拉数据
· 数据迁移,扩容对用户透明
· 消费者状态保存在客户端
术语:
(1)topic : 消息的主题,由用户自定义并在服务器配置,producer发送消息到某 个topic下,consumer从某个topic下消费消息
(2) Offset: 消息在broker上的每个分区都是组织成一个文件列表,消费者拉取数据需要知道数据在文件中的偏移量,这个偏移量就是所谓的offset,offset是绝对偏移量,服务器会将offset转化为具体文件的相对偏移量
(3)Broker:就是meta的服务端或者说服务器,在消息中间件中也称为broker;
(4)分区(partition):同一个topic下面还分为多个区,如meta-test这个topic我们可以分为十个,分别为2台服务器提供,那么可能每台服务器提供5个区,假设服务器0和1 则分区为 0-0 0-1 0-2 0-3 0-4 1-0 1-1 1-2 1-3 1-4