前言
前面我们有一篇关于A c t i v e M Q的安装教程,相信有很多小伙伴已经都了解到怎么安装了!今天我们看一下如何使用这一老牌的消 息 中 间 件
什么是 消 息 中 间 件
使用之前我们先了解一下消 息 中 间 件的定义,看一下百度百科给我们的定义!
应用系统间消 息 传 输 服 务 软 件
消 息 中 间 件 是基于队 列与消 息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消 息 传 输的支撑性软件系统
作用
中间件的作用有三个,分别是:
1、降低耦合
2、流量削峰
3、异步提升性能
应用场景
消 息 中 间 件的应用场景还是比较多的,下面简单的列出几个使用场景
异步通信
直白点就是通过异步操作实现部分功能,避免同步执行。
解耦
降低项目之间的间的依赖程度,针对异构系统进行适配。在项目初始阶段不会预言到系统会做那些扩展,为了不影响系统的稳健,预埋一些处理,创建一些隐含的接口来处理,当有具体变化的时候,可以动态扩展及处理。只要保证他的规范是遵守接口协议即可
顺序保证
在某些特定的场景中,数据处理的顺序都非常重要的。大部分消息队列本来就是排序的,并且能保证数据会按照特定的顺序来执行特定的处理。
数据信息处理
分 布 式 系 统 产生的海 量 数 据 流,比如:监控数据、业务日志、用户行为埋点等,针对这些数据流进行实时或批量采集汇总,目前进行大数据分析是当前互联网的必备技术,通过 消 息 队 列 完成此类数据收集是最好的处理方案。
削峰
在网站的访问量急增的情况的时候,我们应用程序仍然需要继续发挥作用,但是,遇到这样的突发流量无法提前预知;如果以为了能应对这类瞬间峰值访问,使用 消 息 队 列 能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而导致崩溃。
中 间 件 的 角 色
Queue
队列存储,他常用于点对点消息模型 ,默认只能由唯一的一个消费者处理。并且处理消息删除。
Topic
主题存储,他常用于订阅/发布消息模型,主题中的消息,会发送给所有的消费者同时处理。只有在消息可以重复处理的业务场景中才可使用,Queue/Topic都是 Destination 的子接口
ConnectionFactory
连接工厂,他是用来创建连接的对象,比如:ActiveMQ他提供的是ActiveMQConnectionFactory
Connection
虚拟链接,JMS Connection封装了客户与JMS提供者之间的一个虚拟的连接。
Destination
消息的目的地,目的地是客户用来指定它生产的消息的目标和它消费的消息的来源的对象。JMS1.0.2规范中定义了两种消息传递域:点对点(PTP)消息传递域和发布/订阅消息传递域。
存储方式
KahaDB存储
KahaDB他是默认的持久化策略,所有消息都会顺序添加到一个日志文件中,同时另外有一个索引文件记录指向这些日志的存储地址,还有一个事务日志用于消息回复操作。是一个专门针对消息持久化的解决方案,它对典型的消息使用模式进行了优化
JDBC存储
使用JDBC持久化方式,数据库默认会创建3个表,每个表的作用如下:
activemq_msgs:queue和topic的消息都存在这个表中
activemq_acks:存储持久订阅的信息和最后一个持久订阅接收的消息ID
activemq_lock:跟kahadb的lock文件类似,确保数据库在某一时刻只有一个broker在访问
Memory 消息存储
他是基于内存的消息存储,就是消息存储在内存中。persistent=”false”,表示不设置持 久化存储,直接存储到内存中,在broker标签处设置。
LevelDB存储
LevelDB持久化的性能高于KahaDB,但是在ActiveMQ官网对LevelDB的表述:LevelDB官方建议使用以及不再支持,推荐使用的是KahaDB
可以看到已经不在支持此项了。推荐使用KahaDB了文章来源:https://www.toymoban.com/news/detail-476917.html
欢迎大家点击下方卡片,关注《coder练习生》文章来源地址https://www.toymoban.com/news/detail-476917.html
到了这里,关于消息中间件之AcitveMQ详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!