active的Broker的应用与启动方式

  Broker:英语有代理的意思,在activemq中,Broker就相当于一个Activemq实例。

1. 命令行启动实例:

1.activemq start使用默认的activemq.xml启动

E:\activemq\apache-activemq-5.15.6\bin>pwd
/e/activemq/apache-activemq-5.15.6/bin

E:\activemq\apache-activemq-5.15.6\bin>ls
activemq            activemq.bat  win32  wrapper.jar
activemq-admin.bat  activemq.jar  win64

E:\activemq\apache-activemq-5.15.6\bin>activemq.bat
Java Runtime: Oracle Corporation 1.8.0_121 C:\Program Files\Java8\jdk1.8.0_121\jre
  Heap sizes: current=1005056k  free=989327k  max=1005056k
    JVM args: -Dcom.sun.management.jmxremote -Xms1G -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.se
urity.auth.login.config=E:\activemq\apache-activemq-5.15.6\bin\..\conf\login.config -Dactivemq.classpath=E:\activemq\ap
che-activemq-5.15.6\bin\..\conf;E:\activemq\apache-activemq-5.15.6\bin\../conf;E:\activemq\apache-activemq-5.15.6\bin\.
/conf; -Dactivemq.home=E:\activemq\apache-activemq-5.15.6\bin\.. -Dactivemq.base=E:\activemq\apache-activemq-5.15.6\bin
.. -Dactivemq.conf=E:\activemq\apache-activemq-5.15.6\bin\..\conf -Dactivemq.data=E:\activemq\apache-activemq-5.15.6\bi
\..\data -Djava.io.tmpdir=E:\activemq\apache-activemq-5.15.6\bin\..\data\tmp
Extensions classpath:
  [E:\activemq\apache-activemq-5.15.6\bin\..\lib,E:\activemq\apache-activemq-5.15.6\bin\..\lib\camel,E:\activemq\apache
activemq-5.15.6\bin\..\lib\optional,E:\activemq\apache-activemq-5.15.6\bin\..\lib\web,E:\activemq\apache-activemq-5.15.
\bin\..\lib\extra]
ACTIVEMQ_HOME: E:\activemq\apache-activemq-5.15.6\bin\..
ACTIVEMQ_BASE: E:\activemq\apache-activemq-5.15.6\bin\..
ACTIVEMQ_CONF: E:\activemq\apache-activemq-5.15.6\bin\..\conf
ACTIVEMQ_DATA: E:\activemq\apache-activemq-5.15.6\bin\..\data
Usage: Main [--extdir <dir>] [task] [task-options] [task data]

Tasks:
    browse                   - Display selected messages in a specified destination.
    bstat                    - Performs a predefined query that displays useful statistics regarding the specified brok
r
    consumer                 - Receives messages from the broker
    create                   - Creates a runnable broker instance in the specified path.
    decrypt                  - Decrypts given text
    dstat                    - Performs a predefined query that displays useful tabular statistics regarding the specif
ed destination type
    encrypt                  - Encrypts given text
    export                   - Exports a stopped brokers data files to an archive file
    list                     - Lists all available brokers in the specified JMX context
    producer                 - Sends messages to the broker
    purge                    - Delete selected destination‘s messages that matches the message selector
    query                    - Display selected broker component‘s attributes and statistics.
    start                    - Creates and starts a broker using a configuration file, or a broker URI.
    stop                     - Stops a running broker specified by the broker name.

Task Options (Options specific to each task):
    --extdir <dir>  - Add the jar files in the directory to the classpath.
    --version       - Display the version information.
    -h,-?,--help    - Display this help information. To display task specific help, use Main [task] -h,-?,--help

Task Data:
    - Information needed by each specific task.

JMX system property options:
    -Dactivemq.jmx.url=<jmx service uri> (default is: ‘service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi‘)
    -Dactivemq.jmx.user=<user name>
    -Dactivemq.jmx.password=<password>

E:\activemq\apache-activemq-5.15.6\bin>activemq.bat start
Java Runtime: Oracle Corporation 1.8.0_121 C:\Program Files\Java8\jdk1.8.0_121\jre
  Heap sizes: current=1005056k  free=989327k  max=1005056k

启动后访问后台:

2.activemq start xbean:file:../conf/activemq2.xml   使用指定的配置文件进行启动

1.我们把con目录下的activemq2.xml重新命名为activemq2.xml

2.再次直接start启动会报错:

ERROR: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path
resource [activemq.xml]; nested exception is java.io.FileNotFoundException: class path resource [activemq.xml] cannot be
 opened because it does not exist
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resourc
e [activemq.xml]; nested exception is java.io.FileNotFoundException: class path resource [activemq.xml] cannot be opened
 because it does not exist

3.我们指定启动的xml文件位置再次启动可以启动成功

activemq start xbean:file:../conf/activemq2.xml

3.如果不指定file,也就是xbean:activemq2.xml,那么activemq2.xml必须在classpath目录下

2.用activemq来构建java应用---不依赖于ActiveMQ应用,只需要jar包即可实现

  这里主要是用Activemq Broker作为独立的消息服务器来构建Java应用。简单的说,就是在java应用中启动activemq。

嵌入式Broker启动

  下面的启动方式都不能通过http访问连接,要想测试是否启动成功只能通过收消息和发消息来测试。

1.通过BrokerService方式启动

        BrokerService brokerService = new BrokerService();
        brokerService.setUseJmx(true);
        brokerService.addConnector("tcp://localhost:61616");
        brokerService.start();

2.通过  BrokerFactory 启动

        String uri = "properties:broker.properties";
        BrokerService broker = BrokerFactory.createBroker(new URI(uri));
        broker.addConnector("tcp://localhost:61616");
        broker.start();

broker.properties内容如下:

useJmx=true
persistent=false
brokerName=QQQ

当然上面的确定方式都有对应的整合Spring之后的启动方式。

3.BrokerService方式整合spring启动

  单例模式的BrokerService,加载完成之后调用start方法即可。

    <!--Broker启动方式-->
    <bean id="brokerService" class="org.apache.activemq.broker.BrokerService" init-method="start" destroy-method="stop">
        <property name="brokerName" value="broker1"/>
        <property name="persistent" value="false"/>
        <property name="transportConnectorURIs">
            <list>
                <value>tcp://localhost:61616</value>
            </list>
        </property>
    </bean>

从上面也可以看出,一个Broker可以配置多个连接的URI,如下面配置:(端口必须不同)

    <!--Broker启动方式-->
    <bean id="brokerService" class="org.apache.activemq.broker.BrokerService" init-method="start" destroy-method="stop">
        <property name="brokerName" value="broker1"/>
        <property name="persistent" value="false"/>
        <property name="transportConnectorURIs">
            <list>
                <value>tcp://localhost:61616</value>
                <value>tcp://localhost:61618</value>
            </list>
        </property>
    </bean>

4.通过  BrokerFactory 结合spring启动

spring的主配置文件:

    <!--Broker启动方式-->
    <bean id="brokerService" class="org.apache.activemq.xbean.BrokerFactoryBean">
        <property name="config" value="activemq.xml"/>
        <property name="start" value="true"/>
    </bean>

activemq.xml位于classpath下,内容如下:

<beans
        xmlns="http://www.springframework.org/schema/beans"
        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.xsd
  http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">

    <!--
        The <broker> element is used to configure the ActiveMQ broker.
    -->
    <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}">

        <destinationPolicy>
            <policyMap>
                <policyEntries>
                    <policyEntry topic=">" >
                        <!-- The constantPendingMessageLimitStrategy is used to prevent
                             slow topic consumers to block producers and affect other consumers
                             by limiting the number of messages that are retained
                             For more information, see:

                             http://activemq.apache.org/slow-consumer-handling.html

                        -->
                        <pendingMessageLimitStrategy>
                            <constantPendingMessageLimitStrategy limit="1000"/>
                        </pendingMessageLimitStrategy>
                    </policyEntry>
                </policyEntries>
            </policyMap>
        </destinationPolicy>

        <!--
          The systemUsage controls the maximum amount of space the broker will
          use before disabling caching and/or slowing down producers. For more information, see:
          http://activemq.apache.org/producer-flow-control.html
        -->
        <systemUsage>
            <systemUsage>
                <storeUsage>
                    <storeUsage limit="100 gb"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="50 gb"/>
                </tempUsage>
            </systemUsage>
        </systemUsage>

        <transportConnectors>
            <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
            <transportConnector name="openwire" uri="tcp://localhost:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        </transportConnectors>
    </broker>
</beans>

原文地址:https://www.cnblogs.com/qlqwjy/p/10463660.html

时间: 2024-10-19 19:41:13

active的Broker的应用与启动方式的相关文章

redis配置&amp;&amp;启动方式

redis的配置 redis的配置文件 在redis的解压目录中,有一个redis.conf配置文件: 此时我们将之复制到redis的bin同级目录下: [root@hadoop1 redis]# ll 总用量 68 drwxr-xr-x. 2 root root 4096 2月 28 04:39 bin -rw-r--r--. 1 root root 62155 2月 28 04:46 redis.conf [root@hadoop1 redis]# pwd /usr/redis 备注:其实没

java项目部署Linux服务器几种启动方式总结经验

一:两种部署包: 部署之前先说下两种包,java项目部署到服务器一般有用war包的,也有用jar包的,微服务spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包还是jar包,下面小介绍两种包的区别: spring boot既可以打成war发布,也可以找成jar包发布.说一下区别: jar包:直接通过内置tomcat运行,不需要额外安装tomcat.如需修改内置tomcat的配置,只需要在spring boot的配置文件中配置.内置tomcat没有自己的日志输出,全

服务【启动方式】生命周期 通讯

基本概念 Service通常总是称之为"后台服务",其中"后台"一词是相对于前台而言的,具体是指其本身的运行并不依赖于用户可视的UI界面,因此,从实际业务需求上来理解,Service的适用场景应该具备以下条件: 1.并不依赖于用户可视的UI界面(当然,这一条其实也不是绝对的,如前台Service就是与Notification界面结合使用的) 2.具有较长时间的运行特性 服务的两(三)种启动方式 1.startService方式启动服务 最核心的一句话:当Client

s5pv210的启动方式详解(三)

iROM中的BL0中具体是做了什么事? 根据Samsung的文档,BL0主要做了以下几件事: 注: iROM中的BL0是Samsung公司在出厂前已经烧写好了的代码,是不能改变的. BL0在将BL1复制到iRAM中后会根据BL1的内容计算出校验和并和BL1头部的校验和进行比较,如果正确则跳转到BL1中执行第一启动,否则会尝试去SD/MMC的通道2进行启动.(第一启动是可以根据OM pin来选择的,但是第二启动方式固定是SD/MMC的通道2,是不可选择的). iROM中关于初始化Block Dev

s5pv210的启动方式详解(一)

普通的PC机中: BIOS+硬盘来配合启动,见笔记“Linux基础知识->PC机的启动流程分析”. 嵌入式系统中: 可以用来作为启动的介质有:NorFlash.SRAM. 不能用来作为启动介质的有:NandFlash(数据和地址复用,需要发送命令才能读写数据,还要初始化寄存器).DRAM(需要初始化控制寄存器才能使用). 由此可以推出在嵌入式系统中,有如下几种启动方式: 1.NorFlash(存放bootloader)+NandFlash(存放操作系统内核镜像) 这种方式就是从NorFlash中

s5pv210的启动方式详解(二)

s5pv210的启动流程参考s5pv210_iROM_ApplicationNote_Preliminary_20091126.pdf这篇文档. s5pv210支持Moveinand/iNand.SD/MMC.NandFlash.eSSD.UART.USB等多种启动方式. s5pv210启动流程详解: 1.在cpu上电后,首先执行iROM(类似于NorFlash,可以直接读数据)中的代码,iROM中的代码被称为BL0,BL0会初始化一些SoC内部的硬件资源. 2.BL0会根据OM pin上的电平

mysql的四种启动方式

mysql的四种启动方式: 1.mysqld 启动mysql服务器:./mysqld --defaults-file=/etc/my.cnf --user=root 客户端连接: mysql --defaults-file=/etc/my.cnf or mysql -S /tmp/mysql.sock 2.mysqld_safe 启动mysql服务器:./mysqld_safe --defaults-file=/etc/my.cnf --user=root & 客户端连接: mysql --de

Redis的三种启动方式

Part I. 直接启动 下载 官网下载 安装 tar zxvf redis-2.8.9.tar.gz cd redis-2.8.9 #直接make 编译 make #可使用root用户执行`make install`,将可执行文件拷贝到/usr/local/bin目录下.这样就可以直接敲名字运行程序了. make install 启动 #加上`&`号使redis以后台程序方式运行 ./redis-server & 检测 #检测后台进程是否存在 ps -ef |grep redis #检测

[转]s3c2440 NAND与NOR启动方式详解

一:地址空间的分配1:s3c2440是32位的,所以可以寻址4GB空间,内存(SDRAM)和端口(特殊寄存器),还有ROM都映射到同一个4G空间里. 2:开发板上一般都用SDRAM做内存flash(nor.nand)来当做ROM.其中nand flash没有地址线,一次至少要读一页(512B).其他两个有地址线 3:nandflash不用来运行代码,只用来存储代码,NORflash,SDRAM可以直接运行代码) 4:s3c2440总共有8个内存banks6个内存bank可以当作ROM或者SRAM