ActiveMQ(一): 入门篇

JMS

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。它是面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。

前言:
在没有JMS出现的时候,很多应用系统存在这样的一种缺陷:

1、通信的异步性
client 端发起调用后,必须等待server处理完成并返回结果才能继续执行;

2、client 和 server 的生命周期耦合太高
client 进程和 server 服务进程都必须可用,如果 server 出现问题或者网络故障,那么client端会收到异常;

3、点对点通信
client 端的一次调用只能发送给某一个单独的服务对象,无法一对多

JMS(Java Message Service), 通过面向消息中间件(MOM:Message Oriented Middleware)的方式很好的解决了上面的问题。
调用过程:发送者把消息发给消息服务器,消息服务器将消息存放在若干队列/主体中,在合适的时候,消息服务器会将消息转发给接受者。在这个过程中,发送和接收是异步的,也就是发送无需等待,而且发送者和接受者的生命周期也没有必然的关系;在pub/sub模式下,也可以完成一对多的通信,即让一个消息有多个接受者。
这里写图片描述

JMS只是定义了Java 访问消息中间件的接口,其实就是在 javax.jms包中,除了定义了异常,其他的都是interface。
JMS只给出接口,然后由具体的中间件去实现,比如ActiveMQ就是实现了JMS的一种 Provider,还有阿里的RocketMQ,这些消息中间件都符合JMS规范

JMS规范术语:

Provider/MessageProvider:生产者
Consumer/MessageConsumer:消费者
PTP:Point To Point,点对点通信消息模型
Pub/Sub:Publish/Subscribe,发布订阅消息模型
Queue:队列,目标类型之一,和PTP结合
Topic:主题,目标类型之一,和Pub/Sub结合
ConnectionFactory:连接工厂,JMS用它创建连接
Connnection:JMS Client到JMS Provider的连接
Destination:消息目的地,由Session创建
Session:会话,由Connection创建,实质上就是发送、接受消息的一个线程,因此生产者、消费者都是Session创建的


ActiveMQ QuickStart

1、官网下载安装包
http://activemq.apache.org/download.html

解压使用即可
启动 ActiveMQ 根据系统位数启动 执行 activemq.bat (官方要求JDK必须要 Java 8 版本以上)
2、访问ActiveMQ 控制台的用户名、密码的配置信息修改配置

在 jetty-realm.properties 文件中修改 用户名、密码

# Defines users that can access the web (console, demo, etc.)
# username: password [,rolename ...]
admin: admin, admin
user: user, user

在 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="8161"/>
    </bean>

消息的定义和发送

生产者和消费者之间传递的对象,由3个主要部分组成:
消息头(路由) + 消息属性(消息选择器) + 消息体(JMS规范的5种类型)
这里写图片描述

简单整理了一下,参考

作者:张丰哲
链接:https://www.jianshu.com/p/ecdc6eab554c
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可 6私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值