ActiveMQ的安装配置
- 格式:docx
- 大小:17.57 KB
- 文档页数:1
ActiveMq初级操作(工具:tomcat6.0、activeMq5.3.2、Myeclipse7.0,java1。
5)这是本人第一次发表个人使用ActiveMq,如有错误,请指出。
只为与众人共享我的心得。
activeMq是一个开源的支持JMS的框架:(以下为考录他人的信息,如有版权问题,请联系)一、特性及优势1、实现JMS1.1规范,支持J2EE1.4以上2、可运行于任何jvm和大部分web容器(ActiveMQ works great in any JVM)3、支持多种语言客户端(java, C, C++, AJAX, ACTIONSCRIPT等等)4、支持多种协议(stomp,openwire,REST)5、良好的spring支持(ActiveMQ has great Spring Support)6、速度很快,JBossMQ的十倍(ActiveMQ is very fast; often 10x faster than JBossMQ.)7、与OpenJMS、JbossMQ等开源jms provider相比,ActiveMQ有Apache的支持,持续发展的优势明显。
二、下载安装1、下载/download.html,在这个页面里有你所需要的各个版本,我用的是最新的版本-ActiveMQ 5.3.2。
2、安装直接解压至任意目录(如:d:\ apache-activemq-5.1.0),但是我用的时候是解压到D盘的根目录下,我建议各位也这样,不用对它的一些bat进行修改。
3、启动ActiveMQ服务器方法1:直接运行bin\activemq.bat方法2(在JVM中嵌套启动):(这个我没用过,你可以试试)cd exampleant embedBroker4、ActiveMQ消息管理后台系统:http://localhost:8161/admin打开主页后,你可以看到activeMq中带的一些实例,三、详细实例以下为本人的一个简单的实例,希望对各位有所帮助,我是利用网上的资料,将tomcat和activeMq整合在一起做的一个发送接受的发布订阅的例子(我用的是tomcat6.0,activeMq5.3.2):首先整合tomcat和activeMq:1、准备jar包:将ActiveMQ lib目录下的5个jar包复制到Tomcat lib目录下:activemq-core-5.1.0.jaractivemq-web-5.1.0.jargeronimo-j2ee-management_1.0_spec-1.0.jargeronimo-jms_1.1_spec-1.1.1.jargeronimo-jta_1.0.1B_spec-1.0.1.jar2、修改配置文件:2.1 修改Tomcat的conf/context.xml文件:在<context></context>节点中添加以下内容:<Resourcename="jms/FailoverConnectionFactory"auth="Container"type="org.apache.activemq.ActiveMQConnectionFactory"description="JMS Connection Factory"factory="org.apache.activemq.jndi.JNDIReferenceFactory"brokerURL="failover:(tcp://localhost:61616)?initialReconnectDelay=10 0&maxReconnectAttempts=5"brokerName="localhost"useEmbeddedBroker="false"/><Resourcename="jms/NormalConnectionFactory"auth="Container"type="org.apache.activemq.ActiveMQConnectionFactory"description="JMS Connection Factory"factory="org.apache.activemq.jndi.JNDIReferenceFactory"brokerURL="tcp://localhost:61616"brokerName="localhost"useEmbeddedBroker="false"/><Resource name="jms/topic/MyTopic"auth="Container"type="mand.ActiveMQTopic"factory="org.apache.activemq.jndi.JNDIReferenceFactory"physicalName="MY.TEST.FOO"/><Resource name="jms/queue/MyQueue"auth="Container"type="mand.ActiveMQQueue"factory="org.apache.activemq.jndi.JNDIReferenceFactory"physicalName="MY.TEST.FOO.QUEUE"/>配置说明:以JNDI的方式定义了ActiveMQ的broker连接url、Topic和Queue。
ActiveMQ基于文件共享的主从配置方案标签:javaactivemq主从配置文件共享2014-09-10 18:30 2950人阅读评论(0) 收藏举报分类:Java(11)版权声明:本文为博主原创文章,未经博主允许不得转载。
假设两台装有activeMq服务的服务器分别为:[html]view plain copy1.<span style="white-space:pre"></span>192.160.102.902. 192.168.102.91并打算将91上activeMq目录的数据存储目录共享给90的activeMq服务。
91上配置:1、安装NFS服务和rpcbind服务,服务器上一般都安装了这两个服务,可以使用命令"service nfs status"和"service rpcbind status"查看这两个服务是否已启动。
如果系统中的确没有安装这两个服务,请先安装。
2、修改nfs的共享配置文件:/etc/exports[html]view plain copy1.# 文件路径2./usr/local/apache-activemq-5.7.0/data/kahadb 192.168.102.90(rw,no_root_squash)其中/usr/local/apache-activemq-5.7.0/data/kahadb 为要共享的文件夹:192.168.102.90 为可以访问该文件夹的地址(支持通配符*,如可以配置为192.168.102.*);rw表示支持读写操作;no_root_squash表示客户机以root身份访问时映射为本机的nobody用户,这个参数很重要,必须指定,否则可能报没有权限访问的错误。
3、关闭防火墙(service iptables stop)或者将相关端口启用(可以使用rpcinfo -p 192.168.102.91查看需要开启的端口号)。
(转)关于ActiveMQ的配置⽬前常⽤的消息队列组建⽆⾮就是MSMQ和ActiveMQ,⾄于他们的异同,这⾥不想做过多的⽐较。
简单来说,MSMQ内置于微软操作系统之中,在部署上包含⼀个隐性条件:Server需要是微软操作系统。
(对于这点我并去调研过MSMQ是否可以部署在⾮微软系统,⽐如:Linux,只是拍脑袋想了想,感觉上是不可以)。
对于ActiveMQ,微软系统和Linux都是可以部署的。
从功能⽅⾯来说,⼀般最常⽤的就是:消息的收/发,感觉差异不⼤。
从性能上来说,⼀般的说法是ActiveMQ略⾼。
在稳定性上,个⼈感觉MSMQ更好。
如果这两种常⽤队列都⽤过的同学,应该来说最⼤的差异在于:MSMQ如果要访问远程队列(⽐如机器A上的程序访问机器B上的队列),会⽐较恶⼼。
在数据量⽐较⼤的情况之下,⼀般来说队列服务器会专门的⼀台或者多台(多台的话,⽤程序去做热备+负载⽐较⽅便,也不需要额外的硬件成本。
简单来说做法可以这样:消息发送的时候随机向着多台队列服务器上发送消息;接受的时候开多个线程去分别监听;热备⽅⾯,可以维护⼀个带状态的队列连接池,如果消息收发失败那么将状态置为不可⽤,然后起⼀个线程去定时监测坏的连接是否可⽤,这个过程⼀般情况下可以不⽤加锁,为什么,⼤家根据各⾃需要去取舍吧)。
最近搞完了短彩信的⽹关连接服务,这两种队列我均使⽤了。
⼤致的过程是这样的:上层应⽤如果要发端彩信,那么将消息直接发送⾄ActiveMQ(⽬前⽤的就是上⾯说的多台热备+负载,因为实际中下⾏量⾮常⼤5千万条/天以上),然后端彩信⽹关连接服务部署多套,每套均依赖本机的MSMQ。
为什么呢?⽤ActiveMQ的原因是:上层应⽤程序和⽹关连接服务彼此独⽴,消息需要跨机访问。
⽤MSMQ的原因是:ActiveMQ中的数据是⼀条不分省的⼤队列,⽹关连接服务需要按省流控,所以端彩信⽹关连接服务:⾸先把消息从ActiveMQ取出来,然后存⾄本机上的分省MSMQ,这样做另外的⼀个好处就是:ActiveMQ不⾄于过多挤压,他的数据会分摊到N台短彩信⽹关连接服务所部署的机器上的MSMQ之中,也就说MSMQ可以起到分摊数据和缓冲的作⽤。
本文以ActiveMQ 5.2为例,记录了一些部署步骤和注意事项,仅供参考,更详细的内容可以查看官网的指引。
1.下载/download.html2.解压将下载下来的apache-activemq-5.2.0-bin.tar.gz放置于/usr/localcd /usr/local/tar xvfz apache-activemq-5.2.0-bin.tar.gz则ActiveMQ的安装目录为:/usr/local/apache-activemq-5.2.03.修改activemq运行文件的权限cd /usr/local/apache-activemq-5.2.0chmod 755 bin/activemq4.运行(1).普通启动bin/activemq(2).指定日志文件的启动方式bin/activemq >tmp/smlog 2>&1 &(3)后台启动方式nohup bin/activemq >tmp/smlog 2>&1 &这里需要注意:前两种启动方式在linix命令行或者通过ssh客户端启动时在关闭对应的窗口时activemq会关闭,甚至直接输入ctrl+c也会导致activemq退出;第三种则不会出现这中情况。
5.验证服务端是否开启,有几种方法(1).查看控制台输出或者日志文件(2).直接访问activemq的管理页面:http://localhost:8161/admin/6.关闭activemq如果开启方式是使用(1)或(2),则直接ctrl+c或者关闭对应的终端即可如果开启方式是(3),则稍微麻烦一点:想查找到activemq对应的进程:ps -ef | grep activemq然后把对应的进程杀掉,假设找到的进程编号为168168kill 168168。
ActiveMQ入门作者:一路向北摘要:本文主要讲述ActiveMQ的基本知识和使用方法,并简单结合spr ing使用ActiveMQ。
一、ActiveMQ特性和使用总览企业消息软件从80年代起就存在,它不只是一种应用间消息传递风格,也是一种集成风格。
因此,消息传递可以满足应用间的通知和互相操作。
但是开源的解决方案是到最近10年才出现的。
Apache ActiveMQ就是其中一种。
它使应用间能以异步,松耦合方式交流。
本章将向您介绍ActiveMQ。
1、ActiveMQ的特性ActiveMQ是Apache软件基金下的一个开源软件,它遵循JMS1.1规范(Java Message Service),是消息驱动中间件软件(MOM)。
它为企业消息传递提供高可用,出色性能,可扩展,稳定和安全保障。
ActiveMQ使用Apac he许可协议。
因此,任何人都可以使用和修改它而不必反馈任何改变。
这对于商业上将ActiveMQ用在重要用途的人尤为关键。
MOM的工作是在分布式的各应用之间调度事件和消息,使之到达指定的接收者。
所以高可用,高性能,高可扩展性尤为关键。
ActiveMQ的目标是在尽可能多的平台和语言上提供一个标准的,消息驱动的应用集成。
ActiveMQ实现JMS规范并在此之上提供大量额外的特性。
下面是一个高层次的特性列表。
欢迎访问本人百度空间:/snowslince浣花草堂·遵循JMS规范----理解ActiveMQ的起始点是明白ActiveMQ的各种特性是JMS1.1规范的实现。
本章后面将讨论JMS规范提供的好处和保证。
它们包括同步和异步消息传递,一次和只有一次的消息传递,对于预订者的持久消息等等。
依附于JMS规范意味着,不论JMS消息提供者是谁,同样的基本特性都是有效的。
·连接----ActiveMQ提供各种连接选择,包括HTTP,HTTPS,IP多点传送,SSL,STOMP,TCP,UDP,XMPP等。
Clustering(集群)ActiveMQ从多种不同的方面提供了集群的支持。
1、Queue consumer clustersActiveMQ支持订阅同一个queue的consumers上的集群。
如果一个consumer 失效,那么所有未被确认(unacknowledged)的消息都会被发送到这个queue上其它的consumers。
如果某个consumer的处理速度比其它consumers更快,那么这个consumer就会消费更多的消息。
需要注意的是,笔者发现AcitveMQ5.0版本的Queue consumer clusters存在一个bug:采用AMQ Message Store,运行一个producer,两个consumer,并采用如下的配置文件:那么经过一段时间后可能会报出如下错误:ERROR[ActiveMQTransport:tcp:///127.0.0.1:1843-RecoveryListenerAdapter.java:58-RecoveryListenerAdapter] Message id ID:versus-1837-1203915536609-0:2:1:1:419 could not be recovered from the data store!Apache官方文档说,此bug已经被修正,预定在5.1.0版本上体现。
2、Broker clusters一个常见的场景是有多个JMS broker,有一个客户连接到其中一个broker。
如果这个broker失效,那么客户会自动重新连接到其它的broker。
在ActiveMQ 中使用failover:// 协议来实现这个功能。
ActiveMQ3.x版本的reliable://协议已经变更为failover://。
如果某个网络上有多个brokers而且客户使用静态发现(使用Static Transport 或Failover Transport)或动态发现(使用Discovery Transport),那么客户可以容易地在某个broker失效的情况下切换到其它的brokers。
linux下activemq安装与配置什么是消息中间件(MQ)?1.1 为什么会需要消息队列(MQ)? 主要原因是由于在⾼并发环境下,由于来不及同步处理,请求往往会发⽣堵塞,⽐如说,⼤量的insert,update之类的请求同时到达MySQL,直接导致⽆数的⾏锁表锁,甚⾄最后请求会堆积过多,从⽽触发too many connections错误。
通过使⽤消息队列,我们可以异步处理请求,从⽽缓解系统的压⼒。
2.2 什么是消息中间件 消息中间件利⽤⾼效可靠的消息传递机制进⾏平台⽆关的数据交流,并基于数据通信来进⾏分布式系统的集成。
通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
对于消息中间件,常见的⾓⾊⼤致也就有Producer(⽣产者)、Consumer(消费者) 常见的消息中间件产品: (1)ActiveMQ ActiveMQ 是Apache出品,最流⾏的,能⼒强劲的开源消息总线。
ActiveMQ 是⼀个完全⽀持JMS1.1和J2EE 1.4规范的 JMS Provider实现。
我们在本次课程中介绍 ActiveMQ的使⽤。
(2)RabbitMQ AMQP协议的领导实现,⽀持多种场景。
淘宝的MySQL集群内部有使⽤它进⾏通讯,OpenStack开源云平台的通信组件,最先在⾦融⾏业得到运⽤。
(3)ZeroMQ 史上最快的消息队列系统 (4)Kafka Apache下的⼀个⼦项⽬。
特点:⾼吞吐,在⼀台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统。
适合处理海量数据。
是Apache的⼀个开源项⽬,它是⼀个能⼒强劲的开源消息总线,也是⼀个中间件产品。
它是JMS的⼀个实现。
⾸先了解⼀下JMSJMS(Java Messaging Service)是Java平台上有关⾯向消息中间件的技术规范,它便于消息系统中的Java应⽤程序进⾏消息交换,并且通过提供标准的产⽣、发送、接收消息的接⼝简化企业应⽤的开发。
海康k3b501安装说明1、海康k3b501安装前准备1、1运行环境要求CMS与服务器:CPU:Intel(R)Xeon(R)CPU3440或更高内存:DDR34GB硬盘:320GB操作系统:WindowsServer®2008Server/2003Server显示:1024*768分辨率或更高,硬件支持DirectX9.0c或更高版本。
客户端:CPU:Intel(R)Xeon(R)CPU3440或更高内存:DDR34GB硬盘:320GB浏览器:支持IE8/IE9/IE10,不支持兼容模式显示:1024*768分辨率或更高,硬件支持DirectX9.0c或更高版本。
2、海康k3b501开始安装2、1部署方案为了更好的保障系统运行,提升承载能力,建议分以下两种方案部署环境。
(1)默认安装适用于一卡通人员少于1万人且门禁点少于1000门且监控点数少于1000点的情况:将CMS单独部署在WindowsServer®2008服务器上。
即与其他服务分开部署。
如果您使用PCNVR存储,请将PCNVR服务器部署在64位操作系统上。
如果您使用流媒体服务器,可以将流媒体服务器与存储服务器(如PCNVR)部署在同一台服务器上。
(2)高级安装适用于一卡通人员大于1万人或门禁点大于1000门或监控点数大于1000点的情况:将CMS中的Tomcat\MQ部署在一个服务器上,DataBase单独部署在一个服务器上。
其他模块可参考第一种方案进行部署。
这种部署方案需要修改几处配置,详见以下说明。
说明1、Tomcat配置:修改CMS安装目录下CMS\webserver\Tomcat\webapps\ROOT\WEB-INF\下的配置文件proxool.xml,将PostgreSQL连接的IP地址改为数据库所在电脑的IP地址。
如下所示:2、MQ配置:修改CMS安装目录下CMS\webserver\MQ\conf\下的activemq.xml文件的第149行,将<memoryUsagelimit="512mb"/>,改为<memoryUsagelimit="1024mb"/>。
消息队列的使用方法消息队列是一种在不同应用程序或服务之间进行异步通信的机制。
通过将消息发送到队列中,消息的发送者和接收者可以解耦,从而实现高效、可靠的消息传递。
使用消息队列的好处包括提高系统的可靠性、可扩展性和解耦性,以及实现异步处理和流量控制等。
以下是使用消息队列的一般步骤:1.选择合适的消息队列:在选择消息队列之前,需要清楚地了解需求和业务场景,并考虑各个消息队列的优缺点。
常见的消息队列包括 RabbitMQ、Apache Kafka、ActiveMQ等。
2.安装和配置消息队列:根据选择的消息队列,安装并配置相应的消息队列服务。
不同的消息队列系统可能有不同的安装和配置方式,可以参考官方文档进行操作。
3.创建消息队列通道:在消息队列中,发送方和接收方通过通道进行通信。
在使用消息队列之前,需要创建相应的通道。
4.发送消息到队列:发送方将消息发送到队列中。
消息可以是文本、JSON格式、二进制数据等。
发送消息可以是单个消息,也可以是批量消息。
5.接收消息:接收方通过订阅相应队列,监听并接收消息。
接收方可以是同步的或异步的,根据需求选择合适的方式。
6.处理消息:接收方收到消息后,对消息进行处理。
处理的方式可以是解析消息、调用相应的业务逻辑、存储消息等。
7.确认消息:处理完成后,接收方向消息队列发送确认信息,告知消息已被成功处理。
8.错误处理:在消息处理过程中,可能会出现错误。
消息队列通常提供了一些错误处理机制,如消息重试、死信队列等。
根据具体情况,选择合适的错误处理方式。
9.监控和调优:在使用消息队列的过程中,可以通过监控工具和日志来监测消息的发布和消费情况,以及性能指标。
根据监控结果,对系统进行优化和调优。
10.扩展和集群:如果需要处理大量的消息或提高系统的可靠性,可以考虑使用消息队列的扩展和集群机制。
扩展可以是增加消息队列的节点,集群可以是将多个消息队列连接在一起。
在使用消息队列时,还需要注意以下几点:1.消息的可靠性:在消息队列中,消息的可靠性是非常重要的。
去网站
/activemq/apache-activemq/5.8.0/apache-activemq-5.8.0-bin.tar.gz 下载apache-activemq的linux安装包
上传至/home/zhuxing/
或者直接在/home/zhuxing/运行:
wget /activemq/apache-activemq/5.8.0/apache-activemq-5.8.0-bin.tar.g z
解压至/usr/apache-activemq-5.8.0:
tar -zxvf apache-activemq-5.8.0-bin.tar.gz-C /usr
(会自动在/usr目录下生成apache-activemq-5.8.0文件夹)
cd/usr/apache-activemq-5.8.0/bin
chmod +x activemq
cd/usr/apache-activemq-5.8.0/conf
cpactivemq.xmlactivemq.xml.bk
ifconfig记下ip
viactivemq.xml
将
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections= 1000&wireformat.maxFrameSize=104857600"/>中的0.0.0.0改为上一步的ip
启动MQ
cd/usr/apache-activemq-5.8.0/bin
运行./activemq
或./activemqstart> /usr/apache-activemq-5.8.0/data/jmslog 2>&1 &(建议)
运行ps -ef|grepactivemq发现有pid则说明activemq已启动,或
登陆主机访问http://localhost:8161/admin,能够访问表明启动成功
此后台的登陆名和密码一般为:admin
开启61616端口访问
vi /etc/sysconfig/iptables
add:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp--dport61616-j ACCEPT
/etc/rc.d/init.d/iptables restart
设置开机启动
vi /etc/rc.d/rc.local
add:/usr/apache-activemq-5.8.0/bin/activemqstart>/usr/apache-activemq-5.8.0/data/jmslog2>&1 &。