分布式-信息方式-ActiveMQ基础

                                            ActiveMQ简介

ActiveMQ是什么
ActiveMQ是Apache推出的,一款开源全支持JMS.1和J2EE1.4范的JMS Provider实现的信息中间件。
(message oriented Middleware, MOM)
■ ActiveMQ能干什么
最主要的功能就是: 实现JMS Provider,用来帮助实现高可用、高性能、可伸缩、易用和安全的全业级面向消息服务的系统
■ ActiveD特点
完全支持JM81.1和J2EE1.4規范(持久化,XA消息,事务)
支持多种传送协议:in-VM,TcP,SSL,NIO,UDF, JGroups,JXTA
可插拔的体系结构,可以灵活定制,如:消息存储方式、安全管理等
很容易和 Application Server集成使用
多种语言和协议编写客户端。语言:Java,C,C++,C#,Ruby,Per1, Python,PHP
从设计上保证了高性能的集群,客户端-服务器,点对点
可以很容易的和 Spring结合使用
文持通过JDBC和 journal提供高速的消息持久化
支持与Axjs的整合
消息中间件
MOM基本功能:将信息以消息的形式,从一个应用程序传送到另一个或多个应用程序。
MOM主要特点
1:消息异步接受,类似手机短信的行为,消息发送者不需要等待消息接受者的响应,减少软
件多系统集成的耦合度
2:消息可靠接收,确保消息在中间件可靠保存,只有接收方收到后才删除消息,多个消息也
可以组成原子事务
■消息中间件的主要应用场景
在多个系统间进行整合和通讯的时候,通常会要求:
1:可靠传输,数据不能丢失,有的时候,也会要求不能重复传输
2:异步传输,否则各个系统同步发送接受数据,互相等待,造成系统瓶颈
■目前比较知名的消息中间件:
IBM MQSeries
BEA WebLogic JMS Server
Oracle AQ
Tibco
SwiftMQ
AcitveMQ:是免费的java实现的消息中间件
ActiveMQ安装和基木使用
■下载并安装 ActiveMQ服务器端
1:从http://activemq.apache.org/download.html下载最新的ActiveMQ
2:直接解压,然后拷贝到你要安装的位置就好了
启动运行
1:普通启动:到 ActiveMQ/bin下面。 ./ active start
2:启动并指定日志文件 ./ activemq start>/tmp/ activemqlog
检查是否已经启动
ActiveMQ默认采用61616端口提供JMS服务,使用8161端口提供管理控制台服
务,执行以下命令以便检验是否已经成功启动 ActiveMQ服务:
1:比如查看61616端口是否打开: netstat -an|grep 61616
2:也可以直接查看控制台输出或者日志文件
3:还可以直接访问 ActiveMQ的管理页面:http://192.168.1.106:8161/ admin/
默认的用户名和密码是 admin/ admin
■关闭 Active,可以用 ./ activemq stop
暴力点的可以用ps -ef|grep activemq 来得到进程号,然后kill掉

 

ActiveMQ_Windows版本的安装部署

 

1, 保证电脑上安装了jdk6以上版本的java,并配置了好环境变量 ;

2, 官方下载地址:http://activemq.apache.org/download-archives.html ,这里使用 5.8.0

3, 解压缩下载好的 apache-activemq-5.8.0-bin.zip .

4, bin目录下由win32/ win64可以供选择.

5, 我这里是进入 win64 ,运行activemq.bat 脚本

 

6, ActiveMQ默认启动到8161端口,启动完了后在浏览器地址栏输入:http://localhost:8161/admin要求输入用户名密码,默认用户名密码为admin、admin,后便可看到如下图的ActiveMQ控制台界面了

ActiveMQ启动报错:java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' be

二、解决方法

查看data目录下的日志

1发现一个关键字: JVM_Bind

java.io.IOException: Transport Connector could not be registered in JMX: java.io.IOException: Failed to bind to server socket: amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600 due to: java.net.BindException: Address already in use: JVM_Bind


1.端口冲突。。然后通过TCPVIEW关闭该进程就行了。

2.修改activemq.xml中的端口

原文地址:https://www.cnblogs.com/caoyingjielxq/p/9328807.html