ActiveMQ中Broker的应用与启动方式
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&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&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的应用与启动方式的更多相关文章
- Android中Activity的四种启动方式
谈到Activity的启动方式必须要说的是数据结构中的栈.栈是一种只能从一端进入存储数据的线性表,它以先进后出的原则存储数据,先进入的数据压入栈底,后进入的数据在栈顶.需要读取数据的时候就需要从顶部开 ...
- ubuntu中为Pycharm添加快捷启动方式
1. sudo gedit /usr/share/applications/Pycharm.desktop 2.在文件中添加: [Desktop Entry] Type=Application Nam ...
- centos7中设置nginx的systemctl启动方式
1.建立服务文件 (1)文件路径 vim /usr/lib/systemd/system/nginx.service (2)服务文件内容 [Unit] Description=nginx - high ...
- activemq在一台服务器上启动多个Broker
步骤如下: 1.把整个conf文件夹复制一份,比如叫conf2 2.修改里面的activemq.xml文件 ①brokerName不能和原来的重复 ②数据存放的文件名称不能重复,比如<kahaD ...
- activemq的启动方式
一.简介:ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台 ...
- RocketMQ中Broker的启动源码分析(一)
在RocketMQ中,使用BrokerStartup作为启动类,相较于NameServer的启动,Broker作为RocketMQ的核心可复杂得多 [RocketMQ中NameServer的启动源码分 ...
- RocketMQ中Broker的启动源码分析(二)
接着上一篇博客 [RocketMQ中Broker的启动源码分析(一)] 在完成准备工作后,调用start方法: public static BrokerController start(Broker ...
- 性能测试之Jmeter中场景设置与启动方式
Jmeter场景设置与启动方式 性能测试场景是用来模拟模拟真实用户操作的工作单元,所以场景设计一定要切合用户的操作逻辑,jmeter主要是通过线程组配合其他组件来一起完成场景的设置. 线程组设置 Jm ...
- 在ubuntu16.4中为pycharm创建桌面快捷启动方式
在ubuntu环境中每次使用pycharm需要到它的安装目录中执行./pycharm.sh来启动pycharm.比较麻烦,既然ubuntu提供了桌面环境我们应该从分利用.哈哈哈... 上干货 我的py ...
随机推荐
- 关于mac 系统如何通过终端 连接linux服务器 并传文件!
首先要打开终端 mac远程链接服务器 输入 : ssh root@xxx.xx.xxx.xx xxx.xx.xxx.xx是端口号 后面会要求你输入password 即可远程连接 mac通过终端给 ...
- sklearn-woe/iv-乳腺癌分类器实战
sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...
- Java并发注解Annotation
Java并发编程中,用到了一些专门为并发编程准备的 Annotation. 主要包括三类: 1.类 Annotation(注解) 就像名字一样,这些注解是针对类的.主有要以下三个: @Immutabl ...
- Kafka技术内幕 读书笔记之(六) 存储层——日志的读写
-Kafka是一个分布式的( distributed ).分区的( partitioned ).复制的( replicated )提交日志( commitlog )服务 . “分布式”是所有分布式系统 ...
- Hbase记录-备份与恢复方案推荐
热备份和冷备份参考方案,如在生产环境,请结合业务情况考虑
- minio golang client使用
初始化 var ( endpoint = "127.0.0.1:8888" accessKeyID = "YXU5IXETKKPX171K4Z6O" secre ...
- HDU - 1542 Atlantis(线段树求面积并)
https://cn.vjudge.net/problem/HDU-1542 题意 求矩形的面积并 分析 点为浮点数,需要离散化处理. 给定一个矩形的左下角坐标和右上角坐标分别为:(x1,y1).(x ...
- wav音频文件格式解析【个人笔记】(自用)
1. WAV格式 wav是微软开发的一种音频文件格式,注意,wav文件格式是无损音频文件格式,相对于其他音频格式文件数据是没有经过压缩的,通常文件也相对比较大些.. 支持多种音频数字,取样频率和声道, ...
- python --github 刷题
第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? import r ...
- vue-router拦截
说明:以下均在main.js中添加. 主要思路 1.在路由分发时,检查本地缓存是否有账号信息,如果没有,跳转登陆页面,传入当前路由 2.在发送请求时,添加账号token 3.在接收请求时,检查响应的数 ...