ActiveMQ介绍及安装

一、JMS简介

  全称:Java Message Service 中文:Java消息服务。   JMS是Java的一套API标准,最初的目的是为了使应用程序能够访问现有的MOM系统(MOM是Message Oriented Middleware的英文缩写,指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。);后来被许多现有的MOM供应商采用,并实现为MOM系统。

  基于JMS实现的MOM,又被称为JMS Provider。

1、什么是消息

  “消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。   消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。

2、什么是消息队列

  “消息队列”是在消息的传输过程中保存消息的容器。

3、常用消息服务应用

  3.1ActiveMQ

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

  3.2RabbitMQ

    RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。开发语言为Erlang。

  3.3RocketMQ

    由阿里巴巴定义开发的一套消息队列应用服务。

4、消息队列的应用场景

  消息队列的主要特点是异步处理,主要目的是减少请求响应时间和解耦。所以主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。同时由于使用了消息队列,只要保证消息格式不变,消息的发送方和接收方并不需要彼此联系,也不需要受对方的影响,即解耦和。如:

  • 跨系统的异步通信,所有需要异步交互的地方都可以使用消息队列。就像我们除了打电话(同步)以外,还需要发短信,发电子邮件(异步)的通讯方式。
  • 多个应用之间的耦合,由于消息是平台无关和语言无关的,而且语义上也不再是函数调用,因此更适合作为多个应用之间的松耦合的接口。基于消息队列的耦合,不需要发送方和接收方同时在线。
  • 在企业应用集成(EAI)中,文件传输,共享数据库,消息队列,远程过程调用都可以作为集成的方法。
  • 应用内的同步变异步,比如订单处理,就可以由前端应用将订单信息放到队列,后端应用从队列里依次获得消息处理,高峰时的大量订单可以积压在队列里慢慢处理掉。由于同步通常意味着阻塞,而大量线程的阻塞会降低计算机的性能。
  • 消息驱动的架构(EDA),系统分解为消息队列,和消息制造者和消息消费者,一个处理流程可以根据需要拆成多个阶段(Stage),阶段之间用队列连接起来,前一个阶段处理的结果放入队列,后一个阶段从队列中获取消息继续处理。
  • 应用需要更灵活的耦合方式,如发布订阅,比如可以指定路由规则。
  • 跨局域网,甚至跨城市的通讯,比如北京机房与广州机房的应用程序的通信。

二、ActiveMQ简介

ActiveMQ特征

  • 多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
  • 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
  • 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去
  • 通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上
  • 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
  • 支持通过JDBC和journal提供高速的消息持久化
  • 从设计上保证了高性能的集群,客户端-服务器,点对点
  • 支持Ajax
  • 支持与Axis的整合
  • 可以很容易的调用内嵌JMS provider,进行测试

三、ActiveMQ安装

1、下载资源

ActiveMQ官网: http://activemq.apache.org 在这里插入图片描述在这里插入图片描述

1.1、版本说明

  ActiveMQ5.10.x以上版本必须使用JDK1.8才能正常使用。   ActiveMQ5.9.x及以下版本使用JDK1.7即可正常使用。

2、上传至Linux服务器

https://mirrors.tuna.tsinghua.edu.cn/apache//activemq/5.15.3/apache-activemq-5.15.3-bin.tar.gz

3、解压安装文件

tar -zxf apache-activemq-5.9.0-bin.tar.gz

4、检查权限

ls -al apache-activemq-5.9.0/bin

如果权限不足,则无法执行,需要修改文件权限:

chmod 755 activemq

5、复制应用至本地目录

cp -r apache-activemq-5.9.0 /usr/local/activemq

6、启动ActiveMQ

/usr/local/activemq/bin/activemq start

7、测试ActiveMQ

  7.1检查进程
ps aux | grep activemq

见到下述内容即代表启动成功 在这里插入图片描述

  7.2、管理界面

    使用浏览器访问ActiveMQ管理应用, 地址如下: http://ip:8161/admin/ 用户名: admin 密码: admin ActiveMQ使用的是jetty提供HTTP服务.启动稍慢,建议短暂等待再访问测试. 见到如下界面代表服务启动成功 在这里插入图片描述

  7.3修改访问端口

    修改ActiveMQ配置文件: /usr/local/activemq/conf/jetty.xml 在这里插入图片描述     配置文件修改完毕,保存并重新启动ActiveMQ服务。

8、重启ActiveMQ

/usr/local/activemq/bin/activemq restart

9关闭ActiveMQ

/usr/local/activemq/bin/activemq stop

四、ActiveMQ术语

1、Destination

  目的地,JMS Provider(消息中间件)负责维护,用于对Message进行管理的对象。MessageProducer需要指定Destination才能发送消息,MessageReceiver需要指定Destination才能接收消息。

2、Producer

  消息生成者,负责发送Message到目的地。

3、Consumer | Receiver

  消息消费者,负责从目的地中消费【处理|监听|订阅】Message。

4、Message

  消息,消息封装一次通信的内容。

五、ActiveMQ应用

ActiveMQ常用API简介

下述API都是接口类型,由定义在javax.jms包中. 是JMS标准接口定义.

  • 1、ConnectionFactory 链接工厂, 用于创建链接的工厂类型.
  • 2、Connection 链接. 用于建立访问ActiveMQ连接的类型, 由链接工厂创建.
  • 3、Session 会话, 一次持久有效有状态的访问. 由链接创建.
  • 4、Destination & Queue 目的地, 用于描述本次访问ActiveMQ的消息访问目的地. 即ActiveMQ服务中的具体队列. 由会话创建. interface Queue extends Destination
  • 5、MessageProducer 消息生成者, 在一次有效会话中, 用于发送消息给ActiveMQ服务的工具. 由会话创建.
  • 6、MessageConsumer 消息消费者【消息订阅者,消息处理者】, 在一次有效会话中, 用于从ActiveMQ服务中获取消息的工具. 由会话创建.
  • 7、Message 消息, 通过消息生成者向ActiveMQ服务发送消息时使用的数据载体对象或消息消费者从ActiveMQ服务中获取消息时使用的数据载体对象. 是所有消息【文本消息,对象消息等】具体类型的顶级接口. 可以通过会话创建或通过会话从ActiveMQ服务中获取.

转载于:https://my.oschina.net/u/4116644/blog/3048466

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\],你可以从Apache的官方网站下载适用于不同操作系统的Apache ActiveMQ安装包。对于Linux和MAC系统,你可以下载apache-activemq-5.14.0-bin.tar.gz文件,而对于Windows系统,你可以下载apache-activemq-5.14.5-bin.zip文件。 根据引用\[2\],Apache ActiveMQ是一个开源的消息总线,可以用于实现JMS消息服务。然而,在官方网站上并没有找到同时满足高可用和集群部署的方案。因此,作者通过试用验证后,提供了一种集群+高可用部署方案。 根据引用\[3\],单点的ActiveMQ无法满足高可用和集群的需求,因此ActiveMQ提供了多种部署方式,包括master-slave和broker cluster。作者认为需要将这两种部署方式相结合,才能满足公司的分布式和高可用需求。具体来说,可以使用Master-Slave部署方式中的shared filesystem来实现这一目标。 综上所述,你可以根据你的需求选择合适的Apache ActiveMQ安装包,并参考作者提供的集群+高可用部署方案来进行安装和部署。 #### 引用[.reference_title] - *1* [activeMQ介绍安装部署](https://blog.csdn.net/XueFeng0210/article/details/88235709)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [开源jms服务ActiveMQ的负载均衡+高可用部署方案探索 ](https://blog.csdn.net/u014419512/article/details/84598507)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值