消息中间件之AcitveMQ详解

这篇具有很好参考价值的文章主要介绍了消息中间件之AcitveMQ详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

前面我们有一篇关于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了

欢迎大家点击下方卡片,关注《coder练习生》文章来源地址https://www.toymoban.com/news/detail-476917.html

到了这里,关于消息中间件之AcitveMQ详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【RabbitMQ教程】前言 —— 中间件介绍

                                                                       💧 【 R a b b i t M Q 教程】前言——中间件介绍 color{#FF1493}{【RabbitMQ教程】前言 —— 中间件介绍} 【 R abbi tMQ 教程】前言 —— 中间件介绍 💧           🌷 仰望天空,妳

    2024年02月08日
    浏览(70)
  • 深入详解高性能消息队列中间件 RabbitMQ

      目录 1、引言 2、什么是 RabbitMQ ? 3、RabbitMQ 优势 4、RabbitMQ 整体架构剖析 4.1、发送消息流程 4.2、消费消息流程 5、RabbitMQ 应用 5.1、广播 5.2、RPC VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...) https://blog.csdn.net/chenlycly/article/details/124272585 C++软件异常排查从入

    2024年02月05日
    浏览(80)
  • 【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka

    作者简介 前言 博主之前写过一个完整的MQ系列,包含RabbitMQ、RocketMQ、Kafka,从安装使用到底层机制、原理。专栏地址: https://blog.csdn.net/joker_zjn/category_12142400.html?spm=1001.2014.3001.5482 本文是该系列的清单综述,会拉通来聊一下三大MQ的特点和各种适合的场景。 目录 1.概述 1.1.M

    2024年02月09日
    浏览(53)
  • 【中间件】消息中间件之Kafka

    一、概念介绍 Apache Kafka是一个分布式流处理平台,用于构建实时数据管道和流应用。它可以处理网站、应用或其他来源产生的大量数据流,并能实时地将这些数据流传输到另一个系统或应用中进行处理。 核心概念: Topic(主题) :消息的分类,用于区分不同的业务消息。

    2024年01月20日
    浏览(67)
  • RabbitMQ 消息中间件 消息队列

    RabbitMQ 1、RabbitMQ简介 RabbiMQ是⽤Erang开发的,集群⾮常⽅便,因为Erlang天⽣就是⼀⻔分布式语⾔,但其本身并 不⽀持负载均衡。支持高并发,支持可扩展。支持AJAX,持久化,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 2、RabbitMQ 特点 可

    2024年02月03日
    浏览(69)
  • 如何选择消息中间件

    一、 分布式系统消息通信技术简介   分布式系统消息通信技术主要包括以下几种:   1. RPC(Remote Procedure Call Protocol). 一般是C/S方式,同步的,跨语言跨平台,面向过程   2. CORBA(Common Object Request Broker Architecture). CORBA从概念上扩展了RPC。面向对象的,企业级的(面向对象中间件还

    2024年02月10日
    浏览(53)
  • 消息中间件面试题

    异步发送(验证码、短信、邮件…) MYSQL和Redis,ES之间的数据同步 分布式事务 削峰填谷 RabbitMQ如何保证消息不丢失? 开启生产者确认机制,确保生产者的消息能到达队列 开启持久化功能,确保消息未消费前在队列中不会丢失 开启消费者确认机制为auto,由spring确认消息处理成

    2024年02月12日
    浏览(48)
  • 消息中间件-面试题

    消息不重复 生产者控制 消费者幂等 消息不丢失 生产者发送,要确认broker收到并持久化 broker确认消费者消费完,再删除消息 Kafka是一种高吞吐量、分布式、基于发布/订阅的消息中间件,是Apache的开源项目。 broker: Kafka服务器,负责消息存储和转发 topic:消息类别,Kafka按照

    2024年02月21日
    浏览(43)
  • 消息中间件RabbitMQ

    1.1.1. 什么是MQ MQ(message queue) ,从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了 MQ 之后,

    2024年01月17日
    浏览(85)
  • 常用消息中间件介绍

    RocketMQ   阿里开源,阿里参照kafka设计的,Java实现   能够保证严格的消息顺序   提供针对消息的过滤功能   提供丰富的消息拉取模式   高效的订阅者水平扩展能力   实时的消息订阅机制   亿级消息堆积能力   RabbitMQ Erlang实现,非常重量级,更适合于企业级的开发。同时实

    2024年02月12日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包