- 浏览: 1068627 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
这文章是在网上看到的,还没来得及试验,先拿下来再说。 也不知道是不是原创,网址如下http://zhaiyl.spaces.live.com/blog/cns!939A197D2798715B!125.entry
ActiveMQ很好的支持了消息的持久性(Persistence)。消息持久性对于可靠消息传递来说应该是一种比较好的方法,有了消息持久化,即使发送者和接受者不是同时在线或者消息中心在发送者发送消息后宕机了,在消息中心重新启动后仍然可以将消息发送出去,如果把这种持久化和 ReliableMessaging结合起来应该是很好的保证了消息的可靠传送。 消息持久性的原理很简单,就是在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件、内存数据库或者远程数据库等,然后试图将消息发送给接收者,发送成功则将消息从存储中删除,失败则继续尝试。消息中心启动以后首先要检查制定的存储位置,如果有未发送成功的消息,则需要把消息发送出去。
对于ActiveMQ,消息的持久化同样是很简单的,仅仅通过配置信息就可以实现。这里主要介绍两种不同的持久化方法。
1. High performance journal
这是ActiveMQ基于开源的HOWL(High-speed ObjectWeb Logger),将HOWL扩展为可以存储任意大小的消息(HOWL只能存储固定大小的记录),实现的一种消息持久化方法。它可以快速的将消息存储在本地文件中,且这种文件是以一种类似数据库的方式管理的。这样,如果你发送了10,000个消息,可能只有很少数的消息没有发送成功,当达到一个 checkpoint的时候,journal将一批未成功消息通过JDBC存储到数据库,这样避免了多次的数据库操作,很大程度上提高了性能并且保证了可靠性。
配置方法非常简单,就是无需配置,呵呵。
ActiveMQ默认支持Journal,在activemq.xml配置文件中,可以找到如下信息:
Code:
<persistenceadapter>
<journaledjdbc journallogfiles="5" journallogfilesize="1024"datadirectory="${activemq.home}/activemq-data">
</journaledjdbc>
</persistenceadapter>
这里可以改动的就是journalLogFiles,这个属性是制定默认创建几个数据文件来存储消息。journalLogFileSize为数据文件大小,默认为20MB。dataDirectory指向了存储数据文件的位置。
2. 使用MySQL进行消息持久化
ActiveMQ持久几乎所有数据库(因为是通过JDBC把消息存储到数据库的)。方法同样简单,就是配置信息稍微有点变化。 Code:
<persistenceadapter>
<jdbcpersistenceadapter datasource="#mysql-ds">
</jdbcpersistenceadapter></persistenceadapter>
其中dataSource指定了所用数据源的名字为mysql-ds。需要在activemq.xml文件中的<broker>标签之外配置数据源。下面是MySql的配置信息。
Code:
<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost/activemq?relaxAutoCommit=true"></property>
<property name="username" value="gos2"></property>
<property name="password" value="gos2"></property>
<property name="poolPreparedStatements" value="true"></property>
</bean>
大多数信息的含义是很清楚的,需要注意的是relaxAutoCommit需要设置为true,不知道什么含义。不同数据库的配置信息可能有些不一样,还需要自己再查一下。 配置文件修改好之后,将所选数据库的JDBC驱动包下载之后放到%ACTIVEMQ_HOME%\lib\下,然后启动%ACTIVEMQ_HOME%\bin\activemq.bat。
需要注意的一个地方是:ActiveMQ使用MySQL持久化消息是,需要首先创建数据库,上面配制信息中可以看到,数据库的名字是activemq。启动activemq.bat之后,会在数据库中创建表。
如果使用MySQL4.1,出现了max key lengh...错误,原因就是ActiveMQ创建的表使用三个字段的组合作为主键,每个字段时varchar(250),加起来是750个 varchar,如果按一个verchar2个字节(据说如果采用utf-8编码,可能会是3个字节??),超出了MySQL允许的1024字节。我曾试图更改MySQL的设置,没有成功,最后手动的那控制台打印出来的SQL语句中的250都换成了100,创建了这个表,然后把其他创建的表删掉。然后重新启动activemq.bat,成功!!!:)
如果使用的是mysql5.0则可以直接启动成功.
这样,消息中心具有了消息持久化功能,还需要做的就是消息发送者在发送消息的时候要采用JMS中的PERSISTENT模式发送消息。
示例代码如下:
Code:
MessageProducer producer = session.createProducer(destination); producer.setDeliveryMode(DeliveryMode.PERSISTENT); / / 如果不想持久化可用下面语句
//producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
这样,你的消息无论怎么发,都可以成功了。
发表评论
-
Windows下安装并设置Redis
2017-11-28 14:23 635版权声明:欢迎加入【开源技术交流群】: https:// ... -
由于安全狗导致网站访问出现302重定向问题
2015-08-06 18:14 1710网站开始的时候,碰到这种问题,开始没留意以为是浏览器导致的。后 ... -
windows下使用memcache并修改memcache最大使用内存
2015-02-27 22:42 783将memcache服务器安装包解压到C:\memcached ... -
nginx 日志文件切割
2014-12-13 08:23 839转载:http://www.cnblogs.com/beni ... -
nginx+tomcat7+memcached做集群以及session复制
2014-12-07 22:50 751首先:配置tomcat集群 nginx+ tomcat7 ... -
Memcached入门
2014-11-27 23:17 794Memcached是一个高性能的分布式内存对象缓存系统,用于 ... -
nginx + tomcat 配置,静态资源直接使用nginx
2014-11-26 22:34 982upstream tomcat_server { ... -
Nginx Location配置总结
2014-11-26 22:33 819语法规则: location [=|~|~*|^~] /ur ... -
Memche全站缓存
2014-11-13 17:23 931http://my249645546.iteye.com/bl ... -
煩惱的“java.lang.OutOfMemoryError:PermGen space"異常
2014-11-10 20:48 679最近在做一個jee的項目 ... -
nginx+tomcat实现负载均衡
2014-11-05 22:00 939作者:niumd Blog:http://ari.itey ... -
Tomcat 7优化前及优化后的性能对比
2014-11-05 09:52 1100Tomcat 7在我们日常开发、测试、生产环境都会使用到,但 ... -
resin 加花生壳搭建外网访问服务器
2012-10-08 20:44 1083花生壳发布WEB服务 -
resin 配置session过期
2012-03-23 10:29 1511Session的配置 <session ... -
nginx 解决session共享问题(jvm-route)方式
2012-02-28 13:45 2730前几天看到 http://code.google.com ... -
nginx.conf配置详细说明
2012-02-28 09:15 1321vim conf/nginx.conf#用户 用户组user ... -
nginx 解决session共享问题
2012-02-28 09:19 14521) 不使用session,换作cookie能把sessio ... -
java.lang.NoClassDefFoundError: com/caucho/make/PersistentDependency
2012-02-28 08:09 1778之前一直用resin-pro-3.0.22,这两天由于工作需要 ... -
玩玩负载均衡---在window与linux下配置nginx
2012-02-27 14:29 1427最近有些时间,开始接触负载均衡方面的东西,从硬件F5再到Cit ... -
squid 配置缓存服务器
2011-12-31 13:40 1616Squid for Windows 简介 是大家也许不知道, ...
相关推荐
- **JDBC**:ActiveMQ也支持使用数据库进行持久化,这适用于大规模部署和高可用性需求。 - **File System**:另一种选项是直接将消息存储在文件系统,适合小型应用。 4. **ActiveMQ与短信服务的整合**: - **...
在activemq数据库中创建了三张表:ACTIVEMQ_ACKS、ACTIVEMQ_LOCK和ACTIVEMQ_MSGS,它们分别用于存储消息确认信息、锁信息和消息内容。 配置Master/Slave环节中,需要修改ActiveMQ配置文件activemq.xml,在其中添加...
对于与数据库的集成,如`activemq数据库,验证持久化标准配置.txt`所示,ActiveMQ支持使用JDBC进行持久化,确保在故障恢复时数据的完整性。 总之,`activemq.xml`配置文件是管理ActiveMQ核心行为的核心,通过细致地...
在"spring配置activemq详解"这个主题中,我们将探讨如何在Spring项目中配置和使用ActiveMQ。以下是对这个主题的详细说明: 1. **配置ActiveMQ**: - 首先,我们需要在项目中引入ActiveMQ的相关依赖,这通常通过在`...
总结来说,"activemq-5.15+mysqljdbc配置.zip"提供了ActiveMQ的一个定制化版本,它集成了MySQL数据库作为持久化存储,并使用Durid作为连接池。这种配置适用于那些需要强大数据持久化和恢复能力的场景,但也需要对...
总结,配置ActiveMQ使用MySQL 8作为持久化方式涉及修改配置文件、添加必要的Jar包依赖,并确保数据库连接的正确性。这不仅增强了消息传递的可靠性,还便于数据库的管理和维护。在实际操作中,务必根据自己的环境调整...
本教程将详细讲解如何在Spring应用中进行ActiveMQ的嵌入式配置,并提供一个完整的示例,包括所需的jar包。 首先,ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它实现了Java消息服务(JMS)规范,允许应用...
1. **数据库配置** - 本文档提到使用MySQL作为ActiveMQ的持久化存储。首先,需要在MySQL中创建一个用户账号并授予必要的权限。 ```sql CREATE USER 'activemq'@'%' IDENTIFIED BY 'activemq'; GRANT ALL ...
2. **配置**:配置文件默认为conf/activemq.xml,可根据需求调整队列、主题、网络连接等设置。 3. **创建和消费消息**:使用JMS API或者ActiveMQ提供的客户端库,可以创建生产者发送消息,消费者接收消息。 4. **...
本主题将详细讲解在ActiveMQ中使用JDBC持久化所需的jar包,以及如何进行配置。 首先,我们要明确的是,ActiveMQ内置了一个基于KahaDB的默认持久化机制,但用户可以根据需求选择JDBC持久化。JDBC持久化需要以下关键...
2. **持久化到数据库**:为了提高可靠性,ActiveMQ 还可以配置为将消息存储在关系型数据库(如 MySQL 或 PostgreSQL)中。同样,这需要在 `activemq.xml` 配置文件中进行设置,包括连接数据库的详细信息以及具体的...
1. **安装和配置MySQL**:首先,你需要在服务器上安装MySQL数据库,并创建一个用于ActiveMQ的特定数据库和用户。 2. **配置ActiveMQ**:在ActiveMQ的配置文件(通常是`activemq.xml`)中,你需要指定使用JDBC持久化...
eclipse导入后,创建数据库,配置tomcat后启动即可使用 创建数据库的语句如下: create database activemq; use activemq; create table user ( id varchar(64) not null primary key, username varchar(64), ...
总结来说,这个配置文件展示了如何配置ActiveMQ 5.15.15使用JDBC和MySQL 8.0+进行消息持久化,以及解决XML中特殊字符转义的问题,以确保ActiveMQ能够正确地连接并使用MySQL数据库存储和检索消息。这种配置适用于需要...
例如,可以配置 ActiveMQ 在特定条件下批量写入数据库,以减少数据库访问的频率。 总之,理解并正确配置 ActiveMQ 的持久化机制是保障消息队列系统稳定性和数据完整性的关键步骤。开发者应根据实际的业务需求,权衡...
ActiveMQ安装与配置 - **下载安装**:从官方站点[http://activemq.apache.org/download.html](http://activemq.apache.org/download.html)下载安装包。 - **权限配置**:在Linux环境下,通过`chmod +x`命令赋予运行...
ActiveMQ 持久化是指将消息队列持久化到数据库或文件中,以便在断电或崩溃后恢复消息队列。可以使用 Apache ActiveMQ 的持久化机制,例如使用 KahaDB 或 AMQP 等。 集群环境 ActiveMQ 集群环境是指多个 ActiveMQ ...
3. 配置ActiveMQ的配置文件(通常是`conf/activemq.xml`),设置持久化策略,例如在KahaDB中,你需要配置`< PersistenceAdapter >`元素。 4. 如果使用数据库,还需要在配置文件中添加数据库连接信息,并确保数据库...
2. 配置管理:通过Web控制台(默认地址:http://localhost:8161/admin/)进行配置和监控,或者修改`conf/activemq.xml`进行高级设置。 3. 创建和管理资源:在Web控制台或通过API创建消息队列、主题等,并管理消费者...