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

1. 命令行启动实例:

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

E:\activemq\apache-activemq-5.15.\bin>pwd
/e/activemq/apache-activemq-5.15./bin E:\activemq\apache-activemq-5.15.\bin>ls
activemq activemq.bat win32 wrapper.jar
activemq-admin.bat activemq.jar win64 E:\activemq\apache-activemq-5.15.\bin>activemq.bat
Java Runtime: Oracle Corporation 1.8.0_121 C:\Program Files\Java8\jdk1..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.\bin\..\conf\login.config -Dactivemq.classpath=E:\activemq\ap
che-activemq-5.15.\bin\..\conf;E:\activemq\apache-activemq-5.15.\bin\../conf;E:\activemq\apache-activemq-5.15.\bin\.
/conf; -Dactivemq.home=E:\activemq\apache-activemq-5.15.\bin\.. -Dactivemq.base=E:\activemq\apache-activemq-5.15.\bin
.. -Dactivemq.conf=E:\activemq\apache-activemq-5.15.\bin\..\conf -Dactivemq.data=E:\activemq\apache-activemq-5.15.\bi
\..\data -Djava.io.tmpdir=E:\activemq\apache-activemq-5.15.\bin\..\data\tmp
Extensions classpath:
[E:\activemq\apache-activemq-5.15.\bin\..\lib,E:\activemq\apache-activemq-5.15.\bin\..\lib\camel,E:\activemq\apache
activemq-5.15.\bin\..\lib\optional,E:\activemq\apache-activemq-5.15.\bin\..\lib\web,E:\activemq\apache-activemq-5.15.
\bin\..\lib\extra]
ACTIVEMQ_HOME: E:\activemq\apache-activemq-5.15.\bin\..
ACTIVEMQ_BASE: E:\activemq\apache-activemq-5.15.\bin\..
ACTIVEMQ_CONF: E:\activemq\apache-activemq-5.15.\bin\..\conf
ACTIVEMQ_DATA: E:\activemq\apache-activemq-5.15.\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.\bin>activemq.bat start
Java Runtime: Oracle Corporation 1.8.0_121 C:\Program Files\Java8\jdk1..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。这种方式会以进程的方式启动一个新的JVM来支持连接。

嵌入式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>

3.ActiveMQ的Broker方式启动多个broker的方法

1.复制conf文件夹并重新命名为conf2

2.修改conf2文件下的activemq.xml

修改brokerName

修改持久化的数据目录

修改transportConnector的端口,要与第一个默认的不同

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

3.修改conf2\jetty.xml,主要是改端口

    <bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
<!-- the default port number for the web console -->
<property name="host" value="0.0.0.0"/>
<property name="port" value="8162"/>
</bean>

4.复制bin目录下面的activemq.bat并命名为activemq2.bat(如果是linux操作系统复制activemq)

5.修改activemq2.bat中的配置文件目录:

6.启动两个broker (如果是linux还需要赋予上面复制后的文件可执行权限 chmod +x activemq2)

activemq2.bat start  和 activemq.bat start

7.http界面查看jetty服务器

ActiveMQ中Broker的应用与启动方式的更多相关文章

  1. Android中Activity的四种启动方式

    谈到Activity的启动方式必须要说的是数据结构中的栈.栈是一种只能从一端进入存储数据的线性表,它以先进后出的原则存储数据,先进入的数据压入栈底,后进入的数据在栈顶.需要读取数据的时候就需要从顶部开 ...

  2. ubuntu中为Pycharm添加快捷启动方式

    1. sudo gedit /usr/share/applications/Pycharm.desktop 2.在文件中添加: [Desktop Entry] Type=Application Nam ...

  3. centos7中设置nginx的systemctl启动方式

    1.建立服务文件 (1)文件路径 vim /usr/lib/systemd/system/nginx.service (2)服务文件内容 [Unit] Description=nginx - high ...

  4. activemq在一台服务器上启动多个Broker

    步骤如下: 1.把整个conf文件夹复制一份,比如叫conf2 2.修改里面的activemq.xml文件 ①brokerName不能和原来的重复 ②数据存放的文件名称不能重复,比如<kahaD ...

  5. activemq的启动方式

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

  6. RocketMQ中Broker的启动源码分析(一)

    在RocketMQ中,使用BrokerStartup作为启动类,相较于NameServer的启动,Broker作为RocketMQ的核心可复杂得多 [RocketMQ中NameServer的启动源码分 ...

  7. RocketMQ中Broker的启动源码分析(二)

    接着上一篇博客  [RocketMQ中Broker的启动源码分析(一)] 在完成准备工作后,调用start方法: public static BrokerController start(Broker ...

  8. 性能测试之Jmeter中场景设置与启动方式

    Jmeter场景设置与启动方式 性能测试场景是用来模拟模拟真实用户操作的工作单元,所以场景设计一定要切合用户的操作逻辑,jmeter主要是通过线程组配合其他组件来一起完成场景的设置. 线程组设置 Jm ...

  9. 在ubuntu16.4中为pycharm创建桌面快捷启动方式

    在ubuntu环境中每次使用pycharm需要到它的安装目录中执行./pycharm.sh来启动pycharm.比较麻烦,既然ubuntu提供了桌面环境我们应该从分利用.哈哈哈... 上干货 我的py ...

随机推荐

  1. scrapy中css选择器初识

    由于最近做图片爬取项目,涉及到网页中图片信息的选择,所以边做边学了点皮毛,有自己的心得 百度图库是ajax加载的,所以解析json数据即可 hjsons = json.loads(response.b ...

  2. HTTP协议相关原理

    HTTP 的全称是 Hyper Text Transfer Protocol,中文名叫做超文本传输协议 HTTP协议是用于从网络传输超文本数据到本地浏览器的传送协议,它能保证传送高效而准确地传送超文本 ...

  3. 简单贪心) Repair the Wall hdu2124

    Repair the Wall http://acm.hdu.edu.cn/showproblem.php?pid=2124 Time Limit: 5000/1000 MS (Java/Others ...

  4. Zabbix Web API Get方法整合

    #!/usr/bin/python3 import requests,json,re,time,datetime     url = 'http://xxx.com/api_jsonrpc.php' ...

  5. 3.django学习

    ##另外一种url配置方法 首先要导入include 要包含blog目录下的urls.py(新建)的文件 从views连接到index

  6. 42套JavaScript深度解析教学视频!合集

    本文首发于:风云社区SCOEE(社区旨在普惠软件.图片.音乐.视频.素材.文档等互联网资源.为大众提供多样化的服务,以及主要涵盖学术科学.电脑技术.文化人文.体育健身等领域的知识和信息,获得用户的支持 ...

  7. 网速测试脚本speedtest_cli的安装与使用

    speedtest_cli的安装与使用 1.下载 wget https://raw.github.com/sivel/speedtest-cli/master/speedtest.py 图 1 2.授 ...

  8. c++ hash_map/unordered_map 使用

    C++中有很多中key-value形式的容器,map/hash_map/unordered_map/vector_map.下面讲述各个map的使用及其区别. map: #include <ios ...

  9. 网络编程基础【day09】:简单socket实例(二)

    本节内容 1.概述 2.socket实例 3.总结 一.概述 之前我们只是介绍了soket的概念和一些逻辑图表,下面我们来看看,socket的客户端和服务端到底是怎么用的? 二.socket实例 2. ...

  10. springcloud配置需要主要的地方

    Eureka服务端 注册中心 <!-- Eureka服务端 --> <dependency> <groupId>org.springframework.cloud& ...