ActiveMQ|01-ClassicArtemis功能介绍

news2024/9/28 23:29:35

接上篇-MQ消息队列主流消息服务规范及代表产品,ActiveMQ就是基于JMS消息服务规范的消息中间件组件,主要应用在分布式系统架构中,帮助构建高可用、 高性能、可伸缩的企业级面向消息服务的系统

本文速览:

  • JMS对象模型
  • ActiveMQ的功能
    • 产品优势
      • 产品成熟且稳定
      • 协议支持广泛
      • 企业级特性
    • 产品的不足
  • Classic版本和Artemis版本有什么区别

JMS对象模型

ConnectionFactory: 连接工厂,客户端他通过JNDO查找,通过工厂获取一个JMS连接

Connection: 表示客户端和服务端之间的一个连接

Session:表示客户端和服务端之间会话状态,会话建立在连接之上

Destination: 消息队列,有通信地址、类型等信息

Message Producer: 消息的生产者

Message Consumer: 消息的消费者

常用的两种通信模式: P2P点对点的队列模式,Publish/SubscribePublish/Subscribe发布订阅的广播模式

ActiveMQ的功能

ActiveMQ作为消息队列的前驱探索者,虽然在历史的演进中前浪已经逐渐被后浪取代,但是它也始终在变化求存,依托Java语言门槛低占有一定份额。
在这里插入图片描述

产品优势

产品成熟且稳定

作为先驱者,在历史的长河中经受住了实战的考验,曾经也在大量头部企业中投产,并发挥生产的作用。对于基本的消息队列功能有保障。

协议支持广泛

支持多种消息协议,包括JMS(Java Message Service)、AMQP 1.0、STOMP、OpenWire等,提供了跨语言和平台的兼容性

企业级特性

提供事务支持、持久化消息存储、集群部署、高可用性和安全性等功能,适用于企业级应用集成场景

产品的不足

通过消息队列在企业中不断使用,高并发、高性能、大数据量、多租户等业务场景的不断涌现,特定的产品解决特定的业务问题,ActiveMQ并没有一味追新,在业务功能特性上逐渐不突出

处理小消息和高并发场景时,对硬件资源要求相对较高

分布式环境下的扩展能力较弱

Apache社区的重点逐渐转向了ActiveMQ Artemis(基于不同的架构),而对ActiveMQ 5.x版本的维护越来越少

因此,在传统的服务架构对性能要求不高的情况下,可以使用ActiveMQ快速接入,但是对于大数据、高并发微服务的环境下,新生的RocketMQ/Kafka更能适应业务需求。

Classic版本和Artemis版本有什么区别

在这里插入图片描述

大家更为熟悉的ActiveMQ是classic的版本,也就是经典版本,市场占有稳定的ActiveMQ5.x

2015年从HornetQ项目发展而来合并入ActiveMQ的新基线Artemis就不是我们广泛知晓的版本,就是为了摆脱传统架构,增加对高并发、大数据、微服务方向是适配,Artemis采用了全新的设计和实现,旨在提高性能、可扩展性和可靠性。

Artemis版本作为Classic版本的替代品而诞生,相较的提升点有:

  • 高性能与低延迟:Artemis通过改进的设计实现了更高的吞吐量和更低的消息处理延迟。

  • 存储机制:使用了不同的持久化策略和日志结构,比如Journal文件系统,以获得更好的写性能和恢复速度。

  • 内存管理:内存使用效率更高,尤其是在处理大量小消息时表现更好。

  • 集群和HA:提供了更先进的高可用性解决方案和更灵活的集群模式。

  • 协议支持:除了原有的JMS之外,对AMQP 1.0的支持更加成熟和完善,并且也支持STOMP等多种协议。

  • 架构更新:整体架构更为现代化,为云原生环境和大规模分布式部署进行了优化。

还是比较期待Artemis的发展的,毕竟在消息队列的演化进程中,它入场很早,一直在坚持开源,也服务于诸多业务,在大数据、云原生、AI时代下还在优化升级,也是希望自己继续发光发热

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1410499.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

elementplus Dialog 对话框设置距离页面顶部的距离

默认为 15vh&#xff0c;当弹窗过于高的时候&#xff0c;这个距离其实是不合适的 <el-dialogv-model"dialogVisible"title"Tips"width"30%":before-close"handleClose"top"6vh"><span>This is a message</s…

LeetCode刷题---旋转链表

解题思路: 首先创建辅助节点cur遍历指向链表最后一个节点&#xff0c;并将cur的下一个节点指向head头节点&#xff0c;形成闭环&#xff0c;并且在遍历的过程中计算链表的长度n。 n-k表示当前节点&#xff08;当前节点指向未反转节点的最后一个节点&#xff09;到反转后的链表的…

输入框限制输入两位小数 输入金额限制 双向绑定输入框能继续输入但是变量的数据不变解决方案 input 保留两位小数

移动端项目 需求是 输入框只能输入1000以内的数字保留两位小数 开发中发现 用vue开发双向绑定 不管是用value还是v-model 在输入时用input监听输入框变化 校验是否匹配 当不匹配是修改绑定的变量 inputValue时 打印inputValue符合预期 但是input输入框中还是原来输入的值 没有…

对话框与多窗体设计 —— 自定义对话框及其调用

3.2 自定义对话框及其调用3.3 Splash与登录窗口 3.2 自定义对话框及其调用 在一个应用程序设计中&#xff0c;为了实现一些特定的功能&#xff0c;必 须设计自定义对话框。自定义对话框的设计一般从 QDialog继承&#xff0c;并且可以采用UI设计器可视化地设计对 话框。对话框的…

发送消息提醒学习使用

效果图 数据库表及实体模型参考 创建消息事件模型 public class SystemMsgSendEvent implements DomainEvent {private String eventId;//事件idprivate ExecutePoint executePoint;//执行方式 事务提交后当前线程private OperateInfo operateInfo;//操作信息private String …

【AIGC】Diffusers:AutoPipeline自动化扩散生图管道

前言 &#x1f917; 扩散器能够完成许多不同的任务&#xff0c;并且您通常可以将相同的预训练权重用于多个任务&#xff0c;例如文本到图像、图像到图像和修复。但是&#xff0c;如果您不熟悉库和扩散模型&#xff0c;可能很难知道将哪个管道用于任务。例如&#xff0c;如果您…

【博客搭建记录贴】day4_Hexo基本操作,添加草稿并发布

目录 1.将项目导入到开发环境1.1 先把项目导入到IDEA中1.2 确认IDEA中服务器启动正常 2.Hexo基本操作: 添加草稿并发布2.1 生成一个草稿文件2.2 在页面上查看草稿3.3 将草稿正式发布 1.将项目导入到开发环境 我本地已经安装了 IntelliJ IDEA&#xff08;版本&#xff1a;社区版…

web蓝桥杯真题--13、水果摆盘

背景介绍 目前 CSS3 中新增的 Flex 弹性布局已经成为前端页面布局的首选方式&#xff0c;这次试题将利用 Flex 实现经典布局效果。 准备步骤 在开始答题前&#xff0c;你需要在线上环境终端中键入以下命令&#xff0c;下载并解压所提供的文件。 wget https://labfile.oss.a…

某马头条——day11+day12

实时计算和定时计算 流式计算 kafkaStream 入门案例 导入依赖 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><exclusions><exclusion><artifactId>connect-json</artifactId&…

仿真机器人-深度学习CV和激光雷达感知(项目2)day04【简单例程】

文章目录 前言简单例程运行小海龟仿真启动节点查看计算图发布 Topic调用 Serviece 用 Python 发布和接收 Topic创建工作空间创建功能包&#xff0c;编译编写 Topic Publisher 节点编写 Topic Subscriber 节点运行节点 自定义消息类型用 Python 注册和调用 Serviece新建功能包在…

更高效的大模型调优方法,华盛顿大学推出“代理调优”

随着ChatGPT等生成式AI产品朝着多模态发展&#xff0c;基础模型的参数越来越高&#xff0c;想进行权重调优需要耗费大量时间和AI算力。 为了提升模型的调优效率&#xff0c;华盛顿大学和艾伦AI实验室的研究人员推出了全新方法——Proxy Tuning&#xff08;代理调优&#xff09…

YOLOv7全网独家首发:Powerful-IoU更好、更快的收敛IoU,效果秒杀CIoU、GIoU等 | 2024年最新IoU

💡💡💡本文独家改进:Powerful-IoU更好、更快的收敛IoU,是一种结合了目标尺寸自适应惩罚因子和基于锚框质量的梯度调节函数的损失函数 💡💡💡MS COCO和PASCAL VOC数据集实现涨点 收录 YOLOv7原创自研 https://blog.csdn.net/m0_63774211/category_12511937.htm…

arcgis 线要素shp数据处理

回顾 上篇写了arcgis 点shp数据处理之少数点和批量点坐标如何生成点要素&#xff0c;这个可能在做一些设计及查询中需要做的第一步。那么今天将对如何点集转线、线要素编辑数据处理做一记录。 一、工具 arcToolbox工具箱、编辑器 二、操作方法 1.点集转线 还是用上篇处理成…

解决软件找不到msvcp120.dll的五种方法,快速修复msvcp120.dll文件丢失方法

msvcp120.dll 是一个动态链接库文件&#xff0c;它是 Microsoft Visual C 2013 的一个部分&#xff0c;具体来说是 Microsoft Visual C Redistributable Package 的一部分。这个文件包含了微软的 C 运行时库&#xff08;CRT&#xff09;&#xff0c;特别是 C 标准库的部分&…

一、Lamdba 表达式与函数式接口(最终版)

一、Lamdba 表达式与函数式接口 1.1 Lamdba 表达式与函数式接口 1.1.1 Lambda 表达式概述 Lambda 表达式是 Java 8 引入的一个新特性Lambda 表达式可以被视为匿名函数允许在需要函数的地方以更简洁的方法定义功能Lambda 表达式可以完成简洁的函数定义Stream API 中大量使用了…

目标检测数据集 - MS COCO

文章目录 1. 数据集介绍2. 使用pycocotools读取数据3. 验证mAP 论文&#xff1a;Microsoft COCO: Common Objects in Context 网址&#xff1a;https://arxiv.org/abs/1405.0312 官网&#xff1a;https://cocodataset.org/ 1. 数据集介绍 MS COCO是一个非常大型&#xff0c;且…

HAL STM32+EC11编码器实现增减调节及单击、双击、长按功能

HAL STM32EC11编码器实现增减调节及单击、双击、长按功能 &#x1f4fa;实现效果演示&#xff1a; &#x1f4d8;内容提要 &#x1f4dd;本文主要实现&#xff0c;通过STM32 HAL库开发&#xff0c;实现的EC11编码器功能&#xff0c;按键结合状态机思想实现的拓展单击、双击、…

docker-compose搭建redis集群

这里用docker-compose在一台机器搭建三主三从&#xff0c;生产环境肯定是在多台机器搭建&#xff0c;否则一旦这台宿主机挂了&#xff0c;redis集群全挂了&#xff0c;依然是单点故障。同时&#xff0c;受机器性能极限影响&#xff0c;其并发也上不去&#xff0c;算不上高并发。…

用二维码进行灭火器检查,消防巡检更轻松

传统的消防设备管理往往使用纸质巡检表&#xff0c;无法保证巡检人员是否前往现场&#xff0c;可能会存在漏检的情况&#xff0c;而且纸质表格不便于管理&#xff0c;容易造成数据丢失。 为了避免上述问题&#xff0c;可以在草料上搭建消防设备管理二维码系统。巡视人员扫码就…

docker 安装python3.8环境镜像并导入局域网

一、安装docker yum -y install docker docker version #显示 Docker 版本信息 可以看到已经下载下来了 拉取镜像python3镜像 二、安装docker 中python3环境 运行本地镜像&#xff0c;并进入镜像环境 docker run -itd python-38 /bin/bash docker run -itd pyth…