`
zhaohaolin
  • 浏览: 1011245 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

activemq持久化配置,设置为主从模式(带复制的主从模式,应用mysql数据库)

    博客分类:
  • JMS
阅读更多

activemq持久化配置,设置为主从模式(带复制的主从模式,应用mysql数据库)
2009年06月17日 星期三 10:41
别的不用多看罗,配置文件如下
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements. See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License. You may obtain a copy of the License at
   
    http://www.apache.org/licenses/LICENSE-2.0
   
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<!-- START SNIPPET: example -->
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd   
http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">

    <!-- Allows us to use system properties as variables in this configuration file -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
         <property name="locations">
            <value>file:///${activemq.base}/conf/credentials.properties</value>
         </property>      
    </bean>
<!-- 下面红色字体是为了支持带数据库的主从模式集群的配置,被注释的蓝色字体是系统默认配置,单个activemq是用默认的. -->
    <broker xmlns="http://activemq.org/config/1.0" brokerName="JdbcMasterBroker" persistent="true" useShutdownHook="false">

<!--<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.base}/data" > -->
    
        <!-- Destination specific policies using destination names or wildcards -->
        <destinationPolicy>
            <policyMap>
                <policyEntries>
                    <policyEntry queue=">" memoryLimit="5mb"/>
                    <policyEntry topic=">" memoryLimit="5mb">
                      <!-- you can add other policies too such as these
                        <dispatchPolicy>
                            <strictOrderDispatchPolicy/>
                        </dispatchPolicy>
                        <subscriptionRecoveryPolicy>
                            <lastImageSubscriptionRecoveryPolicy/>
                        </subscriptionRecoveryPolicy>
                      -->
                    </policyEntry>
                </policyEntries>
            </policyMap>
        </destinationPolicy>

        <!-- Use the following to configure how ActiveMQ is exposed in JMX -->
        <managementContext>
            <managementContext createConnector="false"/>
        </managementContext>

        <!-- The store and forward broker networks ActiveMQ will listen to -->
   <networkConnectors>
            <!-- by default just auto discover the other brokers -->
   <!--         <networkConnector name="default-nc" uri="multicast://default"/> -->
            <!-- Example of a static configuration:-->
          <!-- <networkConnector uri="static://(tcp://localhost:61616,tcp://192.168.2.136:61616)"/>-->

    </networkConnectors>
<!-- 下面的配置是和上面的“persistnet=true”相配合使用的。--> 
     <persistenceAdapter>
            <amqPersistenceAdapter syncOnWrite="false" directory="${activemq.base}/data" maxFileLength="20 mb"/>
        </persistenceAdapter>


        <!-- Use the following if you wish to configure the journal with JDBC -->
        <!--
        <persistenceAdapter>
            <journaledJDBC dataDirectory="${activemq.base}/data" dataSource="#postgres-ds"/>
        </persistenceAdapter>
        -->

        <!-- Or if you want to use pure JDBC without a journal -->
<persistenceAdapter>
<jdbcPersistenceAdapter dataSource="#mysql-ds"/>
</persistenceAdapter>

        <!--
        <persistenceAdapter>
            <jdbcPersistenceAdapter dataSource="#postgres-ds"/>
        </persistenceAdapter>
        -->

        <sslContext>
            <sslContext keyStore="file:${activemq.base}/conf/broker.ks" keyStorePassword="password" trustStore="file:${activemq.base}/conf/broker.ts" trustStorePassword="password"/>
        </sslContext>
        
        <!-- The maximum about of space the broker will use before slowing down producers -->
        <systemUsage>
            <systemUsage>
                <memoryUsage>
                    <memoryUsage limit="20 mb"/>
                </memoryUsage>
                <storeUsage>
                    <storeUsage limit="1 gb" name="foo"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="100 mb"/>
                </tempUsage>
            </systemUsage>
        </systemUsage>


        <!-- The transport connectors ActiveMQ will listen to -->
        <transportConnectors>
            <transportConnector name="openwire" uri="tcp://localhost:61616" 
discoveryUri="multicast://default"/>
            <transportConnector name="ssl" uri="ssl://localhost:61617"/>
            <transportConnector name="stomp" uri="stomp://localhost:61613"/>
            <transportConnector name="xmpp" uri="xmpp://localhost:61222"/>
        </transportConnectors>

    </broker>

    <!--
    ** Lets deploy some Enterprise Integration Patterns inside the ActiveMQ Message Broker
    ** For more details see
    **
    ** http://activemq.apache.org/enterprise-integration-patterns.html
    -->
    <camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">

        <!-- You can use a <package> element for each root package to search for Java routes -->
        <package>org.foo.bar</package>

        <!-- You can use Spring XML syntax to define the routes here using the <route> element -->
        <route>
            <from uri="activemq:example.A"/>
            <to uri="activemq:example.B"/>
        </route>
    </camelContext>

    <!--
    ** Lets configure some Camel endpoints
    **
    ** http://activemq.apache.org/camel/components.html
    -->

    <!-- configure the camel activemq component to use the current broker -->
    <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent" >
        <property name="connectionFactory">
          <bean class="org.apache.activemq.ActiveMQConnectionFactory">
            <property name="brokerURL" value="vm://localhost?create=false&amp;waitForStart=10000" />
            <property name="userName" value="${activemq.username}"/>
            <property name="password" value="${activemq.password}"/>
          </bean>

        </property>
    </bean>



    <!-- Uncomment to create a command agent to respond to message based admin commands on the ActiveMQ.Agent topic -->
    <!--
    <commandAgent xmlns="http://activemq.apache.org/schema/core" brokerUrl="vm://localhost" username="${activemq.username}" password="${activemq.password}"/>
    -->


    <!-- An embedded servlet engine for serving up the Admin console -->
    <jetty xmlns="http://mortbay.com/schemas/jetty/1.0">
        <connectors>
            <nioConnector port="8161"/>
        </connectors>

        <handlers>
            <webAppContext contextPath="/admin" resourceBase="${activemq.base}/webapps/admin" logUrlOnStart="true"/>
            <webAppContext contextPath="/demo" resourceBase="${activemq.base}/webapps/demo" logUrlOnStart="true"/>
            <webAppContext contextPath="/fileserver" resourceBase="${activemq.base}/webapps/fileserver" logUrlOnStart="true"/>
        </handlers>
    </jetty>

    <!-- This xbean configuration file supports all the standard spring xml configuration options -->

    <!-- Postgres DataSource Sample Setup -->
    <!--
    <bean id="postgres-ds" class="org.postgresql.ds.PGPoolingDataSource">
      <property name="serverName" value="localhost"/>
      <property name="databaseName" value="activemq"/>
      <property name="portNumber" value="0"/>
      <property name="user" value="activemq"/>
      <property name="password" value="activemq"/>
      <property name="dataSourceName" value="postgres"/>
      <property name="initialConnections" value="1"/>
      <property name="maxConnections" value="10"/>
    </bean>
    -->

    <!-- MySql DataSource Sample Setup -->
    
    <bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
      <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
      <property name="url" value="jdbc:mysql://192.168.2.136:3306/activemq?relaxAutoCommit=true"/>
      <property name="username" value="app"/>
      <property name="password" value="app"/>
      <property name="maxActive" value="200"/>
      <property name="poolPreparedStatements" value="true"/>
    </bean>

    

    <!-- Oracle DataSource Sample Setup -->
    <!--
    <bean id="oracle-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
      <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
      <property name="url" value="jdbc:oracle:thin:@localhost:1521:AMQDB"/>
      <property name="username" value="scott"/>
      <property name="password" value="tiger"/>
      <property name="maxActive" value="200"/>
      <property name="poolPreparedStatements" value="true"/>
    </bean>
    -->

    <!-- Embedded Derby DataSource Sample Setup -->
    <!--
    <bean id="derby-ds" class="org.apache.derby.jdbc.EmbeddedDataSource">
      <property name="databaseName" value="derbydb"/>
      <property name="createDatabase" value="create"/>
    </bean>
    -->

</beans>
<!-- END SNIPPET: example -->

已主从模式运行(192.168.2.137为主,192.168.2.136为从),还需在客户端上运行如下命令:
java.naming.provider.url=failover:(tcp://192.168.2.137:61616,tcp://192.168.2.136:61616)?
randomize=false                          #没有这一行的话,就变成了networks of brokers
initialReconnectDelay=10            #这里的单位是毫秒




activemq的目录里有个example,只要简单配置一下build.xml,即可测试activemq的message的consume和query
<project name="Inbox" default="help" basedir=".">

    <property name="class.dir" value="target/classes" />
    <property name="activemq.home" value=".." />
<!-- 作为消息consume的使用本地地址,作为消息query的使用consumer的ip地址 -->
    <!-- example program defaults -->
    <property name="url" value="tcp://localhost:61616" />

分享到:
评论

相关推荐

    ActiveMQ Master/Slave 主从配置

    配置Master/Slave环节中,需要修改ActiveMQ配置文件activemq.xml,在其中添加数据源配置,并调整persistenceAdapter的设置以适应JDBC方式的持久化。配置文件修改完成后,需要将修改后的配置文件复制到另一台虚拟机的...

    Linux(tomcat,jdk , tomcat , activemq , redis )安装手册,以及安装包

    2. 配置`redis.conf`文件,调整内存限制、持久化策略等。 3. 初始化数据库:`redis-server /etc/redis/redis.conf`。 4. 创建防火墙规则以允许外部访问(如果需要)。 Activemq是Apache出品的一个开源消息代理,...

    Java思维导图xmind文件+导出图片

    图解Redis中的AOF和RDB持久化策略的原理 redis读写分离架构实践 redis哨兵架构及数据丢失问题分析 redis Cluster数据分布算法之Hash slot redis使用常见问题及性能优化思路 redis高可用及高并发实战 缓存击穿...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    ActiveMQ 常用开源框架 Spring Spring MVC Spring WebFlow spring tx aop ioc Struts ibatis Mybatis CAS Dubbo 工作能力 软实力 应急能力 创新能力 管理能力 分享能力 学习能力 沟通能力 ...

    java面试八股文(会做也要会讲)

    了解其数据类型(字符串、列表、集合、哈希、有序集合)、持久化机制(RDB、AOF)、事务、主从复制、哨兵系统以及集群搭建。 7. **Spring Boot**: Spring Boot简化了Spring应用的初始化和配置,支持自动配置和...

    java面试宝典,包含java基础篇、多线程、spring、springboot、mysql、redis、mq等等经典面试问题

    - 持久化:RDB和AOF,防止数据丢失。 - Redis事务:MULTI、EXEC命令实现的简单事务。 7. **消息队列MQ**: - 消息模型:点对点、发布/订阅模式。 - 消息确认机制:确保消息的可靠传递。 - MQ的选型:RabbitMQ...

    消息管理系统--管理员手册2

    - **JMS-Broker**:使用ActiveMQ5.5作为消息调度和持久化的底层服务,支持基于数据库共享的主从HA,同时开启JMX监控以实现系统监控和灾备恢复。 - **后台数据库**:基于MySQL存储基础配置信息和消息数据,包括多个...

    针对java、mysql、redis、消息队列开发的一款面经、题型的应试网站

    面试时会测试对键值对数据结构的理解(如字符串、哈希、列表、集合、有序集合),以及Redis持久化机制(RDB和AOF)、事务、发布订阅、主从复制和哨兵系统等知识。 4. **消息队列(MQ)**: 消息队列用于解耦系统组件...

    Java高级技术路线1

    Redis支持持久化(AOF和RDB),主从复制,以及通过Jedis等客户端进行操作。 - **MongoDB**:是一个文档型数据库,以JSON-like文档存储数据,支持动态查询和索引。通过Robomongo等客户端进行操作,实现主从复制和分...

    java中高级面试必备技术

    - **特性**: 支持多种消息传递模式、持久化、事务等。 - **用途**: 解耦、异步处理、流量削峰。 **4.2 ActiveMQ使用场景** - **解耦**: 生产者和消费者无需同时在线。 - **异步处理**: 消费者异步处理消息,提高...

    java2年工作经验简历_java简历.doc

    4. **数据库管理**:他对MySQL数据库有深入实践,能够编写和优化SQL语句,同时了解MySQL的主从复制和读写分离策略,这有助于提高数据库系统的可用性和扩展性。 5. **中间件与搜索引擎**:高亚林使用过Lucene/Solr...

    十次方2.1-讲义PDF.rar

    学习内容可能包括Redis的数据类型、持久化策略、主从复制和事务处理,以及在Java应用中集成Redis的实践方法。 4. **JUC包下的多线程使用**:Java并发包(java.util.concurrent, JUC)提供了丰富的多线程工具,如...

    Java面试知识点整理总结

    理解其数据类型(字符串、哈希、列表、集合、有序集合)、持久化策略(RDB,AOF)、主从复制、事务和Lua脚本等是必备知识。 6. **计算机网络**:面试中可能会涉及到TCP/IP协议、HTTP协议、Socket编程、三次握手与四...

    java简历模版1.docx

    - **MySQL、Oracle**:熟练掌握关系型数据库,包括SQL语句优化,MySQL的主从复制和读写分离。 - **MongoDB、Redis**:非关系型数据库的使用,特别是Redis的持久化策略和集群搭建,以及解决缓存问题的方法。 **...

    分布式常见的面试题(java)

    1. Redis面试:Redis是一款高性能的键值存储数据库,常用于缓存和数据持久化。面试中可能会问到Redis的数据类型(如字符串、哈希、列表、集合、有序集合),过期策略,主从复制,Redis事务,以及如何在高并发场景下...

    面试题.zip

    理解Redis持久化方式(RDB和AOF),主从复制、哨兵系统和Cluster集群等高可用性方案,以及Redis的内存管理策略。 【MySQL面试题-参考回答】: MySQL是广泛使用的SQL数据库。掌握SQL语句,如DQL、DML、DDL、DCL,...

    大型网站系统java控件

    这涉及到分布式缓存(如Redis、Memcached)、分布式数据库(如MySQL的主从复制、分片集群)、分布式文件系统(如Hadoop HDFS)以及分布式任务调度(如Quartz、Celery)。 4. **Java并发编程**:在处理大量用户请求...

    Java开发工程师简历模板.docx

    在项目“实惠购”中,Redis也被用来进行订单持久化和抢单环节。 此外,开发者需要熟悉消息队列,如ActiveMQ,它在高并发场景下可以起到流量削峰的作用。Solr搜索引擎用于实现高效的全文搜索功能。在权限管理方面,...

    Golang在京东的使用.pptx

    在消息队列的设计上,京东选择了自研方案,基于Redis+Lua实现,以保证高可用性、简单性、轻量级、高性能和持久化。虽然市面上已有如RabbitMQ、Kafka和ActiveMQ等成熟的消息队列,但因其复杂性和语言兼容性问题,京东...

Global site tag (gtag.js) - Google Analytics