`
id.alex
  • 浏览: 22794 次
社区版块
存档分类
最新评论

ActiveMQ 1

阅读更多
下载安装 ActiveMQ 网上有 N 多例子, 就不说什么了..

只有这点不同. 我在使用 5.9 版本时, 启动时需要  ./activemq start , 网上说 ./activemq 直接就可以.

JMS 确认机制
Session javax.jms.Connection.createSession(boolean transacted, int acknowledgeMode) throws JMSException


transacted 是决定是否启动事务,
true 启动事务
事务被提交的时候,确认自动发生.
false 非事务
非事务何时确认取决于: acknowledgeMode
这段摘自 ActiveMQ
引用

在非事务性会话中,消息何时被确认取决于创建会话时的应答模式(acknowledgement mode)。
该参数有以下三个可选值:
 Session.AUTO_ACKNOWLEDGE。当客户成功的从receive 方法返回的时候,
或者从MessageListener.onMessage 方法成功返回的时候,会话自动确认
客户收到的消息。
 Session.CLIENT_ACKNOWLEDGE。客户通过消息的acknowledge 方法确认消
息。需要注意的是,在这种模式中,确认是在会话层上进行:确认一个被
消费的消息将自动确认所有已被会话消费的消息。例如,如果一个消息消
费者消费了10 个消息,然后确认第5 个消息,那么所有10 个消息都被确
认。
 Session.DUPS_ACKNOWLEDGE。该选择只是会话迟钝的确认消息的提交。如
果JMS provider 失败,那么可能会导致一些重复的消息。如果是重复的
消息,那么JMS provider 必须把消息头的JMSRedelivered 字段设置为
true。


发送和接收,以及 Persistence
JMS有两种模式
Queue
session.createQueue("Test")

当 1个发送者P, 2个消费者 C1, C2
需要注意的是, P发送了3条消息, 结果是 C1 接收2条, C2 接收1条.(大多数情况)
即每条消息,只会有一个消费者收到. Queue 模式特点.

当 producer.setDeliveryMode(DeliveryMode.PERSISTENT); 时, 如果没有消费者接收, 那么会将这条记录持久化, 等待消费者下次启动接收.

Topic
多称呼这种模式为 Pub-Sub. 发布-订阅

session.createTopic("Test")
当 1个发送者P, 2个消费者 C1, C2
P发送了3条消息, 结果是 C1 接收3条, C2 接收3条.

当 producer.setDeliveryMode(DeliveryMode.PERSISTENT); 时,
要看有没有持久订阅这个 Topic 的消费者. 如果有,会将这条消息持久化保存,供持久订阅者下次启动时接收.
持久订阅的方式是
... 
connection.setClientID($ClientId);
...
Topic topic = new ActiveMQTopic("Test");
MessageConsumer consumer = session.createDurableSubscriber(topic, $Name);
...


持久订阅必须指定 $ClientId 和 $Name,由这两个属性联合成一个唯一订阅者标识.
ActiveMQ 会记录每个持久订阅者的 最后订阅的消息号(LAST_ACKED_ID).

下面是一些activeMQ 存储方式性能对比,
仅供参考

KahaDB   10W
PERSISTENT  26291 ms
NON_PERSISTENT  2095 ms

MySQLDB  10W
PERSISTENT 152362 ms
NON_PERSISTENT 2008 ms

LevelDB 10W
PERSISTENT  43593 ms
NON_PERSISTENT  1576 ms

ReplicationLevelDB 10W
PERSISTENT   48826 ms
NON_PERSISTENT  1576 ms

分享到:
评论

相关推荐

    0923-分布式消息通信ActiveMQ1

    分布式消息通信ActiveMQ1是关于消息中间件ActiveMQ的介绍,它主要用于协调应用程序之间的消息传输。ActiveMQ作为一款开源的、基于Java的消息中间件,遵循Java消息服务(JMS)规范,提供高可靠的消息传递功能。 首先...

    activemq activeMq笔记

    1. **下载与安装**:首先从官方网站下载最新版本的 ActiveMQ。将其解压到期望的位置,并进入 `bin` 目录运行 `activemq.bat` 启动服务。启动成功后,可以通过默认的管理界面 `http://127.0.0.1:8161/admin` 访问 ...

    CentOS7下安装ActiveMQ1

    在本教程中,我们将详细介绍如何在CentOS 7操作系统上安装Apache ActiveMQ 5.14.3。Apache ActiveMQ是流行的开源消息代理,它遵循Java Message Service (JMS) 规范,允许应用程序通过消息传递进行通信。在CentOS 7上...

    1.6 Zabbix监控ActiveMQ1

    1. **监控脚本创建**: 为了监控ActiveMQ,我们需要在activemq服务器上创建一个bash脚本。这个脚本通过HTTP请求获取ActiveMQ的队列信息,然后处理这些数据以提供监控所需的指标。在给定的脚本中,它首先定义了IP...

    0927分布式消息通信-ActiveMQ1

    1. **ActiveMQ安装**:在Linux环境中,如CentOS 7,我们通常会先安装VMware虚拟机,然后部署JDK8作为运行环境。接着,ActiveMQ可以被下载并解压到指定目录,设置相关环境变量,通过命令行启动服务。 2. **应用场景*...

    activemq负载均衡实现.doc

    例如,在上述文档中,我们创建了两个 ActiveMQ 实例,activemq1 和 activemq2,它们都配置了 NetworkConnectors,指定了对方的 TCP 地址。activemq1 配置连接到 localhost 的 61617 端口,而 activemq2 配置连接到 ...

    apache-activemq-5.13.3

    在压缩包文件名称列表中,虽然只有一个条目"apache-activemq1",但通常这会包含整个ActiveMQ的安装或源码包,可能包括以下组成部分: 1. `bin`目录:包含可执行文件和脚本,如启动和停止服务器的命令。 2. `conf`...

    0924分布式消息通信-ActiveMQ1

    1. **消息发送策略**: - **持久化消息**:默认情况下,生产者发送的消息是持久化的,即使在消息发送后broker崩溃,也能保证消息不会丢失。可以通过设置`connectionFactory.setUseAsyncSend(true)`来使发送持久化...

    activeMQ实例

    1. **添加依赖**:在项目中引入ActiveMQ相关的JAR包,如activemq-client。 2. **创建连接工厂**:使用ActiveMQConnectionFactory创建连接到Broker的工厂。 3. **建立连接**:通过连接工厂创建Connection对象。 4. **...

    activemq安装.pdf

    1. 下载ActiveMQ安装包,例如apache-activemq-5.2.0.zip。 2. 解压安装包到指定目录,例如G:\apache-activemq-5.2.0。 3. 运行bin目录下的activemq.bat文件,启动ActiveMQ服务。 查看日志文件 在G:\apache-...

    apache-activemq-5.15.12-bin.zip

    1. 日志查看:ActiveMQ的日志位于logs目录下,通过分析日志可以了解服务器运行状况。 2. JMX工具:使用JMX工具如JConsole或VisualVM,可以远程监控ActiveMQ的运行状态,如内存、线程、MBeans等信息。 六、安全性...

    1、 ActiveMQ 安装1

    1. **下载**: - 访问官方下载页面(http://activemq.apache.org/download.html) - 选择适合您操作系统的版本,例如 Windows 或 Linux - 对于 Windows 用户,下载 `apache-activemq-<version>-bin.zip` 文件 - ...

    activeMQ收发工具.rar

    1. **JMS接口**:了解Java Message Service(JMS)规范,它是Java平台上的标准API,用于在不同的应用之间发送和接收消息。ActiveMQ收发工具利用JMS接口与ActiveMQ服务器进行通信。 2. **消息模型**:掌握点对点...

    ActiveMQ路由配置方式

    ActiveMQ路由配置方式 ActiveMQ路由配置是Apache ActiveMQ项目中的一种重要配置方式,它依赖另一个Apache项目Camel。ActiveMQ集成了Camel,启动时同时会启动Camel。通过Camel Web Console可以进行Routing配置。 ...

    ActiveMQ 配置文件详解

    **ActiveMQ配置文件详解** Apache ActiveMQ 是一个开源的消息中间件,它实现了多种消息协议,如JMS(Java Message Service)和AMQP(Advanced Message Queuing Protocol),并且广泛应用于分布式系统中,提供可靠的...

    ActiveMQ高并发处理方案

    ##### 1. 垂直扩展 垂直扩展的目标是在单一的ActiveMQ实例上支持更多的连接和消息队列。具体来说,可以采取以下措施: - **非阻塞IO**:通过配置ActiveMQ使用非阻塞IO,可以减少线程的使用,从而支持更多并发连接。...

    ActiveMQ消息服务器 v6.0.1.zip

    1. 安装部署:解压"ActiveMQ-activemq-6.1.0"文件,启动`bin/activemq`脚本,即可启动ActiveMQ服务器。 2. 配置管理:通过Web控制台(默认地址:http://localhost:8161/admin/)进行配置和监控,或者修改`conf/...

    Jmeter测试ActiveMQ性能报告

    1. 系统概况 ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了JMS规范,提供了高效、可靠的消息传递能力。JMS则是一种标准接口,使得应用程序可以与不同的消息中间件进行交互,确保消息的可靠传输。 2....

    ActiveMQ消息中间件面试专题1

    1. 什么是 ActiveMQ? ActiveMQ 是一个开源的、基于 Java 的消息中间件(MOM),它遵循 JMS 1.1 规范,为开发者提供了高效、可扩展、稳定和安全的企业级消息通信能力。通过ActiveMQ,应用程序能够解耦生产者和消费者...

    apache-activemq-5.17.3

    1. **bin**:包含了用于启动、停止和管理ActiveMQ服务的脚本。这些脚本适用于不同的操作系统,如Windows和Linux。 2. **conf**:配置文件目录,其中的`activemq.xml`是最核心的配置文件,定义了ActiveMQ服务器的行为...

Global site tag (gtag.js) - Google Analytics