ActiveMQ是由Apache出品的,一款最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE
1.4规范的 JMS Provider实现,它非常快速,支持多种语言的客户端和协议,而且可以非常容易的嵌入到企业的应用环境中,并有许多高级功能。
首先简单的介绍一下MQ,MQ英文名MessageQueue,中文名也就是大家用的消息队列,干嘛用的呢,说白了就是一个消息的接受和转发的容器,可用于消息推送。
1、 Point-to-Point(P2P)
2、 Publish/Subscribe(Pub/Sub) |
①消息队列(Queue)
②发送者(Sender)
③接收者(Receiver)
④每个消息都被发送到一个特定的队列,接收者从队列中获取消息。
队列保留着消息,直到他们被消费或超时。 |
①每个消息只有一个消费者(Consumer)(即一旦被消费,消息就不再在消息队列中)
②发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,
不管接收者有没有正在运行,它不会影响到消息被发送到队列
③接收者在成功接收消息之后需向队列应答成功 |
如果你希望发送的每个消息都应该被成功处理的话,那么你需要P2P模式。 |
①主题(Topic)
②发布者(Publisher)
③订阅者(Subscriber)
客户端将消息发送到主题。多个发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。 |
①每个消息可以有多个消费者。
②发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者。
它必须创建一个订阅者之后,才能消费发布者的消息,而且为了消费消息,订阅者必须保持运行的状态。
③为了缓和这样严格的时间相关性,JMS允许订阅者创建一个可持久化的订阅。
这样,即使订阅者没有被激活(运行),它也能接收到发布者的消息。 |
如果你希望发送的消息可以不被做任何处理、或者被一个消息者处理、
或者可以被多个消费者处理的话,那么可以采用Pub/Sub模型 |
1. 将数据从一个应用程序传送到另一个应用程序,或者从软件的一个模块传送到另外一个模块。
2. 负责建立网络通信的通道,进行数据的可靠传送。
3. 保证数据不重发,不丢失。
4. 能够实现跨平台操作,能够为不同操作系统上的软件集成技工数据传送服务。 |
官方网站:http://activemq.apache.org/
本文中使用的是apache-activemq-5.13.2 Windows版。 |
bin存放的是脚本文件
conf存放的是基本配置文件
data存放的是日志文件
docs存放的是说明文档
examples存放的是简单的实例
lib存放的是activemq所需jar包
webapps用于存放项目的目录 |
我们了解activemq的基本目录,下面我们运行一下activemq服务。
双击bin目录下的activemq.bat脚本文件或运行自己电脑版本下的activemq.bat。 |
ActiveMQ默认使用的TCP连接端口是61616,
通过查看该端口的信息可以测试ActiveMQ是否成功启动 netstat -an|find
“61616” |
C:\Users>netstat
-an|find "61616"
TCP 0.0.0.0:61616 0.0.0.0:0 LISTENING
TCP [::]:61616 [::]:0 LISTENING |
ActiveMQ默认启动时,启动了内置的jetty服务器,提供一个用于监控ActiveMQ的admin应用。
admin:http://127.0.0.1:8161/admin/
用户名和密码都是admin
|