它是一种消息服务器,由开源组织apache提供。我们把它简单理解为一个装东西的容器,可以往里面装东西,又可以取出装的这些东西,就像存钱罐,我们可以往里面存钱,又可以取钱。服务器嘛,就是拥有存数据和取数据的功能嘛,比如我们百度网盘,我们既可以往里面存文件,又可以取文件,只不过这个服务器装的是消息罢了,所以叫消息服务器。
对于它来说,有队列和主题两种消息模式。
对于它来说,有发送消息方和接收消息方,其实说来就是往服务器中装消息和取出消息而已。
对于它来说,它能够接收的消息类型有:
- StreamMessage Java原始值的数据流(流数据)
- MapMessage 一套名称-值对(Map类型数据)
- TextMessage 一个字符串对象(String类型数据)
- ObjectMessage 一个序列化的 Java对象(对象数据)
- BytesMessage 一个未解释字节的数据流(byte数组数据)
只要这个消息服务器中装了数据,我们就可以去这个消息服务器中去获取这些数据。
队列和主题两种消息模式的区别:
队列是点对点的模式,什么意思呢?就是说我们向队列中装了数据(我说的消息就是数据,数据就是消息呵)之后,我们接收方想去把里面的数据取出来,那么一次只能有一个接受方去取这些信息,如果有多个接收者去取,那么它们就去抢这个权利,哪个抢到了那就获得本次的接收权。一个队列中有非常多的数据,比如里面装了200个对象数据,而每次只能取出其中一条数据,所以接收方就会一直去抢这个权利,都是概率问题,直到把里面的数据取完,每条数据被取走后,消息服务器中就不存在这条数据了,所以每个接收者取出的信息都只是部分数据。它的数据如果没有接受者去取出来,会一直存在于消息队列中,直到被取走。
主题订阅模式什么意思呢?它类似于我们的广播,发送方只管发布消息(数据),到底是谁来接受我不管,反正只要有接收者来接收这些发布的消息,每个接收者都能获得这些全部的消息,不存在抢的问题。它默认的是,发布者往主题中添加数据过程中,如果没有接受者来接受这些数据,那么这些消息也会消失。就像我们听广播,广播在播放过程中,你没有听到这个广播,那么之前广播播放的内容你也就错过了,就是这个道理。但是这个也可以调整数据销毁时间:
- static final int AUTO_ACKNOWLEDGE = 1; 默认(自动确认)销毁
- static final int CLIENT_ACKNOWLEDGE = 2; 客户端手动确认销毁
- static final int DUPS_OK_ACKNOWLEDGE = 3; 自动批量确认销毁
- static final int SESSION_TRANSACTED = 0; 事务提交并确认销毁
简单介绍就到这里了。下面开始安装阶段。
一、先安装activeMQ消息服务器
1、首先去官网下载activeMQ消息服务器:http://apache.org/index.html#projects-list
2、我下的是免安装版,所以只需要把下载的压缩文件解压即可,然后把解压文件放到你想放的盘中。
3、点开解压文件夹,找到bin目录,选择版本,有win32和win64两个文件夹,点击进入文件夹,找到activemq.bat这个文件,点击启动它
4、可以看到启动后的端口默认是8161,它的默认用户名是admin,密码也是admin
5、在浏览器输入http://localhost:8161,就会出现欢迎页面,点击Manage ActiveMQ broker
6、输入用户名和密码,用户名是admin,密码也是admin
7、就进入到了消息查看界面,这个界面就可以看到你的队列信息,主题信息等等
二、activeMQ消息服务器发布消息端及接受消息端代码演示:https://blog.csdn.net/IT_CREATE/article/details/86656613