ActiveMQ(二、 结合jms进行详细了解)
1、了解基本的同步异步的概念
同步:发送消息以后堵塞当前自身的进程 等待接收方的响应 得到响应之后继续向下运行
异步:发送消息以后 不用等接收方的响应 发送和接受是独立的
jms 是异步通信 用于两个应用程序之间或者分布式系统之间发送消息 客户端获取消息时 不需要主动发送请求,消息会自动发送给可用的客户端
接受消息的也分异步和同步 (这就是为什么ActiveMQ分为同步异步的地方)
同步接收消息:接收者主动接收消息 若消息队列中没有消息则阻塞等待 也可以自己手动设置方法降低等待时间(receive())
异步接收消息:消息队列有消息会调用接收者的onMessage方法 接收者不需要阻塞等待 可以执行其他业务(onMessage())
2、jms的两种消息传送模型:点对点和订阅/发布
1)点对点(Queue Sender Receiver):一对一的关系 无时间依赖
2)订阅/发布(Topic Publisher Subscriber):一对多的关系 有时间依赖 需要先订阅才能接收到消息
3、结合上一个文章理解下面这个图
网上找到的 很经典 也很形象
ConnectionFactory 创建Connection对象的,QueueConnectionFactory和TopicConnectionFactory 这两个接口继承这个接口
Connection 客户端和jms系统之间建立的链接(TCP/IP socket的包装) 可以产生一个或者多个session
Destination 生产者发送的目标或者消费者的消息来源 两个对象Topic、Queue
Session 可以通过它创建生产者消费者以及消息 还提供了事务的功能
MessageListener 消息监听器 注册了之后 一旦消息达到 将自动调用监听器的onMessage()