ActiveMQ之基础讲解篇.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《ActiveMQ之基础讲解篇.docx》由会员分享,可在线阅读,更多相关《ActiveMQ之基础讲解篇.docx(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ActiveMQ之基础讲解篇文档编号:2020-03-09当前版本:V1.0.0编写者: 海带发布时间:2020-03-09修订记录板本说明作者批准批准日期1.0C海带2020-03-091.11.21.31.41.51.61.71.81.92.02.12.22.32.42.52.62.72.82.93.03.11.概述41.1ActiveMQ是什么41.2整体架构41.2.1相关概念42.P2P53.Publish64.代码流程65.存储方式75.1KahaDB75.2AMQ85.3JDBC85.4内存存储96.部署模式96.1单例模式96.2无共享主从模式96.3共享存储主从模式116.3
2、.1基于数据库116.3.2基于文件系统127.网络连接137.1代理网络137.2网络发现148.实例159.性能调优151. 概述本文档为海带中间件系列之ActiveMQ基础篇,描述了ActiveMQ的基本概念、运行机制及单Broker、多Broker的使用方法。给大家明确一点,ActiveMQ只是一种工具,安装、配置后使用即可,可以简单地集成到Spring等框架中来,就像我们使用MySql数据库一样。1.1 ActiveMQ是什么ActiveMQ是一种MOM,即消息中间件,是用于以分布式应用或系统中的异步、松耦合、可靠、可扩展和安全通信的一类软件。MOM 的总体思想是它作为消息发送器和消
3、息接收器之间的消息中介,这种中介提供了一个全新水平的松耦合。JMS 叫做 Java 消息服务(Java Message Service),是 Java 平台上有关面向 MOM 的技术规范,旨在通过提供标准的产生、发送、接收和处理消息的 API 简化企业应用的开发,类似于 JDBC 和关系型数据库通信方式的抽象。1.2 整体架构1.2.1 相关概念l Provider:纯 Java 语言编写的 JMS 接口实现(如 ActiveMQ )l Domains:消息传递方式,包括点对点(P2P)、发布/订阅(Pub/Sub)两种l Connection factory:客户端使用连接工厂来创建与 JM
4、S provider 的连接l Destination:消息被寻址、发送以及接收的对象2. P2PP2P (点对点)消息域使用 queue 作为 Destination,消息可以被同步或异步的发送和接收,每个消息只会给一个 Consumer 传送一次。Consumer 可以使用 MessageConsumer.receive() 同步地接收消息,也可以通过使用MessageConsumer.setMessageListener() 注册一个 MessageListener 实现异步接收。多个 Consumer 可以注册到同一个 queue 上,但一个消息只能被一个 Consumer 所接收,然
5、后由该 Consumer 来确认消息。并且在这种情况下,Provider 对所有注册的 Consumer 以轮询的方式发送消息。说明:l 消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。l 消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。l Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费,其它的则不能消费此消息了。l 当消费者不存在时,消息会一直保存,直到有消费者消费3. PublishPub/Sub(发布/订阅,Publish/Subscribe)消息域使用 topic 作为 Destinat
6、ion,发布者向 topic 发送消息,订阅者注册接收来自 topic 的消息。发送到 topic 的任何消息都将自动传递给所有订阅者。接收方式(同步和异步)与 P2P 域相同。除非显式指定,否则 topic 不会为订阅者保留消息。当然,这可以通过持久化(Durable)订阅来实现消息的保存。这种情况下,当订阅者与 Provider 断开时,Provider 会为它存储消息。当持久化订阅者重新连接时,将会受到所有的断连期间未消费的消息。说明:l 消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息l 和点对点方式不同,发布到topic的消息会被所有订阅者消费l 当
7、生产者发布消息,不管是否有消费者。都不会保存消息4. 代码流程l 获取连接工厂l 使用连接工厂创建连接l 启动连接l 从连接创建会话l 获取 Destinationl 创建 Producer,或n 创建 Producern 创建 messagel 创建 Consumer,或发送或接收message发送或接收 messagen 创建 Consumern 注册消息监听器(可选)l 发送或接收 messagel 关闭资源(connection, session, producer, consumer 等)注意这张表格:5. 存储方式5.1 KahaDBActiveMQ 5.3 版本起的默认存储方式。
8、KahaDB存储是一个基于文件的快速存储消息,设计目标是易于使用且尽可能快。它使用基于文件的消息数据库意味着没有第三方数据库的先决条件。要启用 KahaDB 存储,需要在 activemq.xml 中进行以下配置: 5.2 AMQ与 KahaDB 存储一样,AMQ存储使用户能够快速启动和运行,因为它不依赖于第三方数据库。AMQ 消息存储库是可靠持久性和高性能索引的事务日志组合,当消息吞吐量是应用程序的主要需求时,该存储是最佳选择。但因为它为每个索引使用两个分开的文件,并且每个 Destination 都有一个索引,所以当你打算在代理中使用数千个队列的时候,不应该使用它。 5.3 JDBC选择关
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ActiveMQ 基础 讲解
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内