`

5.1ActiveMQ是如何存储消息的?

阅读更多
获得一些在ActiveMQ消息仓库中的消息的存储原理的基础知识是重要的。它会帮助你做配置和提供对在持久化消息传输过程中在ActiveMQ代理中发生了什么一个认识。被发送到队列和主题的消息是被不同地存储的,因为有一些优化可能发生在主题模式而对队列没有意义,如我们将介绍的那样。
对队列的存储是直截了当的--消息主要被先进先出地存储。看图5.1对此的描述(图略)。某时一条消息被调度到单个消费者。只有当消息被消费并答复时才会从代理消息仓库中删除。
对于一个主题的持久订阅者,每个消费者获取一条消息的拷贝。为了节省存储空间,只有消息的一个拷贝被代理存储。存储中的一个持久订阅者对象维护一个指向它的下一个存储消息的指针并分派它的一个拷贝到它的消费者,如图5.2所示。消息仓库以这种方式实现因为每一个持有订阅者可能以不同的速度消费消息,或者同一时间它们可能不都在运行。同时,因为每个消息可能潜在的有多个消费者,一条消息不能被仓库删除知道它被成功地传递到每个对它感兴趣的持久订阅者。
ActiveMQ的每个消息仓库实现都支持队列和主题的消息存储,虽然存储类型间显然实现不相同。例如,内存仓库在内存中保存所有消息。
贯穿剩余章节的是,详细介绍关于配置ActiveMQ不同的消息仓库和他们的优缺点。
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    ActiveMQ是Apache出品的开源消息总线.rar

    一、 ActiveMQ 简介 1 什么是 ActiveMQ ... 5.1ActiveMQ ActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持 JMS1.1 和 J2EE 1.4 规范的 JMS Provider 实现。

    ActiveMQ使用手册(中文版)

    - **定义:** 目的地是消息被发送或接收的目标。 - **类型:** 主要有两种类型: - **队列(Queue):** 每个消息都被发送到一个具体的队列中,并且只能由一个消费者接收。 - **主题(Topic):** 消息被广播到一个主题上...

    activeMQ 源码分析

    ActiveMQ提供了多种消息存储策略,其中KahaDB是最常用的一种。KahaDB是一个专门为ActiveMQ设计的嵌入式日志文件系统,能够提供高效且可靠的消息持久化服务。 - **KahaDB的工作原理**:KahaDB采用追加的方式写入消息...

    ActiveMQ快速上手

    #### 六、ActiveMQ的消息存储 **6.1 队列与Topic** - **队列**:适用于点对点的消息模型。 - **Topic**:支持发布/订阅的消息模型。 **6.2 存储引擎** - **KahaDB**:ActiveMQ默认使用的高性能存储引擎。 - **...

    组件zookeeper,redis,kafka,activemq,cat搭建

    Redis 是一种内存数据结构存储系统,可以作为数据库、缓存和消息中间件使用。它支持多种数据类型如字符串、哈希表、列表等。 **2.2 环境准备** - Redis 安装包位于 `/home/datum/install/` - 解压并编译安装 Redis...

    MQ消息队列

    队列作为临时的数据存储,保证了消息的顺序和至少一次投递。此外,消息队列还支持消息的持久化,以防止数据丢失。 二、MQ消息队列类型 2.1 发布/订阅模式 在这种模式下,多个消费者可以订阅同一个主题,当生产者...

    Apache Kafka面试题

    消息会自动路由到相应的分区(Partition),并最终存储在Broker上。 - **配置参数**: 生产者通过指定Topic名称及至少一个Broker地址来完成消息的发布。此外,生产者还可以设置消息确认机制(ACK)来确保消息的成功...

    Spring Boot面试题(2022最新版)-重点

    在微服务架构中,可以通过使用集中式的 Session 存储方案(如 Redis)来实现 session 共享。这种方式可以确保不同服务实例间共享 session 数据。 **6.12 Spring Boot 中如何实现定时任务?** Spring Boot 支持通过...

    ESB原理、构架、实现及应用

    - **Apache ActiveMQ**:高性能的消息中间件,支持JMS标准。 - **Apache CXF**:用于构建和调用RESTful服务和SOAP服务的框架。 - **Apache Karaf**:一个轻量级的容器,用于部署和管理ServiceMix。 ##### 4.2 实现...

    java中高级面试必备技术

    #### 四、消息队列(ActiveMQ) **4.1 ActiveMQ简介** - **特性**: 支持多种消息传递模式、持久化、事务等。 - **用途**: 解耦、异步处理、流量削峰。 **4.2 ActiveMQ使用场景** - **解耦**: 生产者和消费者无需...

    Java高级架构必备知识点

    - **ActiveMQ-JMS规范及使用**:了解JMS规范和ActiveMQ的使用。 - **Kafka实现原理剖析**:深入理解Kafka的设计原理。 **7.7 分布式缓存分析对比** - **Memcache的原理分析及使用**:比较Memcache和Redis的不同之...

    基于Java的邮件服务器

    - **MySQL 5.1**:作为数据存储的数据库系统。 #### 三、安装与配置步骤 ##### 1. 安装与配置Apache James 3.0 - **下载与解压**:首先,下载并解压Apache James 3.0的压缩包到目标目录。解压后的文件夹命名为...

    Spring in Action(第2版)中文版

    10.1.3在spring中安装activemq 10.2协同使用jms和spring 10.2.1处理冗长失控的jms代码 10.2.2使用jms模板 10.2.3转换消息 10.2.4将spring的网关支持类应用于jms 10.3创建消息驱动pojo 10.3.1创建消息监听器 ...

    Spring in Action(第二版 中文高清版).part2

    5.1 Spring的数据访问哲学 5.1.1 了解Spring数据访问的异常体系 5.1.2 数据访问的模板化 5.1.3 使用DAO支持类 5.2 配置数据源 5.2.1 使用JNDI数据源 5.2.2 使用数据源连接池 5.2.3 基于JDBC驱动的数据源 ...

    Spring in Action(第二版 中文高清版).part1

    5.1 Spring的数据访问哲学 5.1.1 了解Spring数据访问的异常体系 5.1.2 数据访问的模板化 5.1.3 使用DAO支持类 5.2 配置数据源 5.2.1 使用JNDI数据源 5.2.2 使用数据源连接池 5.2.3 基于JDBC驱动的数据源 ...

    积分管理系统java源码-traffic:智能交通站务管理系统

    (4)、消息队列:ActiveMQ; (5)、接口:Axis2(1.7.9); (6)、接口部署:≥Tomcat8、Jboss等; ###系统特色: (1)、前端界面经典Ribbon样式自适应,外观显示、字体等用户可自定义,win7\win10系统下完美运行; (2)、...

    TongWeb6.0用户使用手册.pdf

    - **消息中间件**:集成ActiveMQ等消息传递组件。 #### 1.6 规范支持 TongWeb6.0严格遵循以下技术规范: - Java EE 6 Web Profile - JDBC - JPA - EJB 3.1 - JMS - Servlet 3.0 - JSP 2.2 - JSF 2.0 - JNDI - JAAS ...

Global site tag (gtag.js) - Google Analytics