Notify在设计思路上与传统的MQ有一定的不同,他的核心设计理念是
1. 为了消息堆积而设计系统。消费者出现问题是个非常常见的情况,而消息系统则必须能够在后端消费不稳定的情况下,仍然能够保证用户写入的正常并且TPS不降。
2. 无单点,可自由扩展的设计
MetaQ对外提供的是一个队列服务,内部实现也是完全的队列模型,这里的队列是持久化的磁盘队列,具有非常高的可靠性,并且充分利用了操作系统cache来提高性能。
- 是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式特点。
- Producer、Consumer、队列都可以分布式。
- Producer向一些队列轮流发送消息,队列集合称为Topic,Consumer如果做广播消费,则一个consumer实例消费这个Topic对应的所有队列,如果做集群消费,则多个Consumer实例平均消费这个topic对应的队列集合。
- 能够保证严格的消息顺序
- 提供丰富的消息拉取模式
- 高效的订阅者水平扩展能力
- 实时的消息订阅机制
- 亿级消息堆积能力
n 广播消费一条消息被多个Consumer消费,即使这些Consumer属于同一个Consumer Group,消息也会被Consumer Group中的每个Consumer都消费一次。
在CORBA Notification规范中,消费方式都属于广播消费。
n 集群消费
一个Consumer Group中的Consumer实例平均分摊消费消息,类似于JMS规范中的Point-to-Point Messaging
特点如下:
u Each message has only one consumer.
u A sender and a receiver of a message have no timing dependencies. The receiver can fetch the message whether or not it was running when the client sent the message.
u The receiver acknowledges the successful processing of a message.
n 主动消费
Consumer主动向Broker发起获取消息请求,控制权完全在于Consumer应用。
类似于JMS规范中描述的Synchronously方式消费
n 被动消费
Consumer注册一个Callback接口,由Metaq后台自动从Broker接收消息,并回调Callback接口。
类似于JMS规范中的描述的Asynchronously方式消费
n 顺序消息
消费消息的顺序要同发送消息的顺序一致,在Metaq中,主要指的是局部顺序,即一类消息为满足顺序性,必须Producer单线程顺序发送,且发送到同一个队列,这样Consumer就可以按照Producer发送的顺序去消费消息。
n 普通顺序消息
顺序消息的一种,正常情况下可以保证完全的顺序消息,但是一旦发生通信异常,Broker重启,由于队列总数发生变化,哈希取模后定位的队列会变化,产生短暂的消息顺序不一致。
n 严格顺序消息
顺序消息的一种,无论正常异常情况都能保证顺序,但是牺牲了分布式Failover特性。
相关推荐
阿里消息中间件MetaQ学习Demo
4. 消息确认:MetaQ支持消息确认机制,消费者在成功处理完消息后,需要向服务器发送确认信号,以确保消息被正确消费。 5. 调度与重试:如果消息未能成功送达消费者,MetaQ会根据配置进行重试,直至消息被正确消费或...
MetaQ是一款分布式消息服务中间件,其核心功能基于发布-订阅模型。在这一模型中,发布者(Producer)将消息发布到MetaQ,MetaQ会储存这些消息,而订阅者(Consumer)则通过pull方式来消费这些消息。具体而言,消费者...
MetaQ作为一个消息队列,它提供高可用、高可靠的消息存储和传输服务。生产者将数据以消息的形式发布到MetaQ,而消费者则可以从队列中消费这些消息。这种模式使得数据处理变得异步,可以有效地解耦生产者和消费者,...
Metaq 提供了丰富的特性来解决 Messaging System 中遇到的问题,旨在提供可靠的消息传输服务。 1. **Metaq 的核心组件**: - **Producer**:生产者是负责创建并发送消息的组件,通常由业务系统生成消息。 - **...
MetaQ是阿里巴巴开源的一款分布式消息中间件,它主要用于在大规模分布式系统中提供高效、可靠的消息传递服务。MetaQ Server 1.4.6.2版本是这个中间件的一个特定发行版,包含了服务端和客户端的组件,以及相关的...
MetaQ是阿里巴巴开源的一款分布式消息中间件,主要用于提供高可靠、高可用的消息传输服务。在本文中,我们将深入探讨MetaQ Server 1.4.6.2版本的核心特性、架构设计以及使用场景,帮助读者理解其工作原理和实际应用...
Metaq的这些特性使其成为企业级应用中的理想选择,能够处理大量的实时数据流,并提供稳定的消息传递服务。无论是对大数据处理的需求,还是在分布式系统中保证消息的一致性,Metaq都展现出了强大的功能和灵活性。
MetaQ是阿里巴巴开源的一款分布式消息中间件,主要用于解决大规模分布式系统中的消息传递问题。在1.4.6.2这个版本中,它继续保持着与原版一致的核心特性,提供高效、稳定、可扩展的消息服务。本文将深入探讨MetaQ...
MetaQ 提供了高可用、高可靠的消息服务,支持多种消息模型,如点对点(Point-to-Point)和发布/订阅(Publish/Subscribe)模式,能够有效地解耦应用组件,提高系统的灵活性和可扩展性。 在安装 MetaQ 之前,我们...
Metaq是一款高性能的消息中间件,广泛应用于分布式系统中,提供高效、稳定的消息传递服务。然而,在JDK 7环境下,Metaq可能会遇到一些运行异常,其中最常见的就是与物理文件删除有关的问题。本文将深入解析这一异常...
Metamorphosis是淘宝开源的一个Java消息中间件,他类似apache-kafka,但不是一个简单的山寨拷贝,而是做了很多改进和优化,项目的主页在淘蝌蚪上。服务端、客户端、javadoc都包含在内。
1. **专业性**:作为业界专业消息中间件,MQ有丰富的技术积累,包括MetaQ、Notify、RocketMQ等多个产品形态,荣获多项国内外奖项,广泛应用于阿里巴巴内部核心业务。 2. **高可靠性**:消息多份存储,断电不失效,...
阿里巴巴的消息中间件发展历史可以追溯到2007年,经历了Notify、MetaQ、RocketMQ等阶段。RocketMQ是阿里巴巴自主研发的开源消息中间件,于2016年成为Apache顶级项目。 二、消息中间件核心功能设计 消息中间件的...
阿里云消息队列产品包括MetaQ和Notify等内部产品,以及Apache孵化项目RocketMQ。在实际应用中,阿里云内部有超过1000个核心应用使用MQ,每天流转的消息量达几千亿。在关键场景,例如双11交易、商品、营销等核心链路...
自2007年起,阿里巴巴集团在消息中间件领域不断探索与实践,经历了从Notify到MetaQ再到Apache RocketMQ的发展历程。以下是这一演变过程的关键节点: - **2007年**:阿里巴巴内部启动了Notify项目,旨在解决企业内部...
RocketMQ的设计目标是提供低延迟、高可靠、高可扩展的消息传递服务,适用于大规模分布式系统中的消息通讯。它支持多种消息模式,如点对点(Point-to-Point)、发布/订阅(Publish/Subscribe)以及事务消息等,为企业...
- **MetaQ**:阿里云提供的消息中间件,用于构建分布式消息系统,支持消息队列、发布/订阅模型等。 3. **消息队列与消息类型** - **消息队列**:用于缓冲和异步处理消息,降低系统耦合度,提高系统性能。 - **...