1. 什么时候用activeMQ
在大量场合,ActiveMQ和异步消息对系统架构有意味深长的影响。下面举一些例子:
1). 异构系统集成
2). 取代RPC
3). 应用间的解耦
4). 事件驱动架构的后台
5). 提升应用的可扩展性
2. 使用
版本5.13.2
1). 进入bin目录,启动
activemq.bat start
之前很多文档介绍是 activemq即可,我试了5.13.2这个版本不行。
2). 连接
经过网络连接
tcp: uri=”tcp://localhost:61616?trace=true”
nio: uri=”nio:localhost:61618?trace=true”
http: uri=”http://locahost:8080?trace=true”
虚拟机内部连接
vm://brokerName?trace=true
3. 队列和主题消息的区别
“JMS 主题从一个 JMS 客户接收消息然后将这些消息分发给所有注册为主题监听者的 JMS 客户。相反,JMS 队列只将消息分发给一个客户,不管有多少客户注册为队列监听者。如果两个或者多个客户注册到一个队列,同时一个消息存储在队列中,那么只有一个客户能接收到这个消息。”
看<<Java Message Service>>书中的这个图能非常清晰的描述这一点。
这个图能说明jms的api的组织结构
4. TopicPublisher与MessageProducer关联区别
TopicPublisher是MessageProducer的子类。
我们在发topic消息的时候,既可以用MessageProducer也可以用TopicPublisher
对应队列来看,MessageProducer还有个子类QueueSender,用于发送队列消息