每日一学|初识ActiveMQ消息中间件:企业信息化

Posted 码力兄弟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一学|初识ActiveMQ消息中间件:企业信息化相关的知识,希望对你有一定的参考价值。

点击关注|每日学一点未来好一些


ActiveMQ 是Apache的一个开源项目,它是一个能力强劲的开源消息总线,也是一个中间件产品。它是JMS的一个实现。


在介绍ActiveMQ之前,先来复习一下J2EE中的JMS规范。


JMS是java Message Service的简称,用来发送异步消息,在不同系统和不同的模块之间我们可以利用它实现集成。


JMS有两个好处,第一个就是让模块之间或者系统之间的耦合度降低,第二个是异步通信。


JMS的消息机制有2种模型,一种是Point to Point,表现为队列的形式。发送的消息,只能被一个接收者取走;另一种是Topic,可以被多个订阅者订阅,类似于群发。


在JMS中有这样几个重要的核心接口和类:

1.ConnectionFactory,用于jms client获取与jms provider的连接。不同的jms产品,对这个接口有不同的实现,比如说ActiveMQ,这个接口的实现类是ActiveMQConnectionFactory


2.Connection,是由ConnectionFactory产生的,表示jms client与jms provider的连接


3.Session,是由Connection产生的,表示一个会话。Session是关键组件,Message、Producer/Consumer、Destination都是在Session上创建的


4.Message,这个组件很好理解,就是传输的消息,里面包括head、properties、body,其中head是必选的


5.Destination,是消息源,对发送者来说,就是消息发到哪里;对接收者来说,就是从哪里取消息。Destination有2个子接口,Queue和Topic,分别对应上面提到的2种模型


6.MessageProducer,是消息发送者,创建这个组件的代码类似:


 Java代码 :

Destinationdest=session.createQueue("dotaQueue");//消息目的地

MessageProducerproducer=session.createProducer(dest);//消息发送者

 

可以注意到,这里需要把Destination作为参数,传入createProducer()方法,这说明消息发送者是绑定到Destination上的,这个发送者发送的消息,会发送到这个绑定的Destination上


7.MessageConsumer,是消息接收者,和Message Producer是相反的一种组件

对JMD有所了解之后,我们来看ActiveMQ。


前面说了它是Apahce开源项目,我们可以在这里进行下载

http://activemq.apache.org/download.html 解压即可。

每日一学|初识ActiveMQ消息中间件:企业信息化

运行bin目录下的activemq.bat启动mq,mq会占用至少2个端口,默认的是61616和8161


61616是等待jms client的连接,8161是ActiveMQ自带的一个web应用


http://localhost:8161/demo,可以看到各种官方提供的例子

http://localhost:8161/admin,是ActiveMQ的管理控制台


我们可以在管理控制台中创建一个消息队列:

之后我们就可以用ActiveMQ做一个简单的实例。具体的代码就不贴出来了。


以上是关于每日一学|初识ActiveMQ消息中间件:企业信息化的主要内容,如果未能解决你的问题,请参考以下文章

消息中间件是个啥?初识ActiveMQ

ActiveMQ 初识ActiveMQ

关于消息中间件ActiveMQ的企业级应用

初识中间件之消息队列

尚硅谷消息中间件之ActiveMQ视频发布!

深入浅出JMS--ActiveMQ简单介绍以及安装