ActiveMQ|01-ClassicArtemis功能介绍

接上篇-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.mzph.cn/news/647454.shtml

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

相关文章

import tensorflow.contrib.slim as slim中contrib报红,显示没有导入contrib

本人环境: python 3.6 tensorflow 1.13 问题如下图: 解决方法: 找到包的位置,查看tensorflow中是否下载了contrib包,如果有的话,建议重新装一次TensorFlow 如果没有找找,可以在搜索栏搜一下…

【Web前端实操15】利用Grid布局完成九宫格

相关知识点: 创建多列 column-count 属性指定了需要分割的列数 列与列之间的间隙 column-gap 属性指定了列与列间的间隙 列边框 column-rule-style 属性指定了列与列间的边框样式 column-rule-width 属性指定了两列的边框厚度 column-rule-color 属性指定了…

【GitHub项目推荐--不错的Flutter项目】【转载】

01 可定制的图表库 FL Chart是一个高度可定制的 Flutter 图表库,支持折线图、条形图、饼图、散点图和雷达图 。 项目地址:https://github.com/imaNNeoFighT/fl_chart LineChart BarChart PieChart Sample1 Sample2 Sample3 …

哪吒汽车与经纬恒润合作升级,中央域控+区域域控将于2024年落地

近日,在2024哪吒汽车价值链大会上,哪吒汽车与经纬恒润联合宣布合作升级,就中央域控制器和区域域控制器展开合作,合作成果将在山海平台新一代车型上发布。 哪吒汽车首席技术官戴大力、经纬恒润副总裁李伟 经纬恒润在智能驾驶领域拥…

百度Apollo | 实车自动驾驶:感知、决策、执行的无缝融合

🎬 鸽芷咕:个人主页 🔥 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…

多维时序 | Matlab实现DBO-BiLSTM蜣螂算法优化双向长短期记忆神经网络多变量时间序列预测

多维时序 | Matlab实现DBO-BiLSTM蜣螂算法优化双向长短期记忆神经网络多变量时间序列预测 目录 多维时序 | Matlab实现DBO-BiLSTM蜣螂算法优化双向长短期记忆神经网络多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现DBO-BiLSTM多变量时间序…

Ubuntu 申请 SSL证书并搭建邮件服务器

文章目录 Log 一、域名连接到泰坦(Titan)电子邮件二、NameSilo Hosting 避坑三、Ubuntu 搭建邮件服务器1. 环境准备2. 域名配置3. 配置 Postfix 和 Dovecot① 安装 Nginx② 安装 Tomcat③ 申请 SSL 证书(Lets Encrypt)④ 配置 pos…

链表分割(新的错误:开头赋值)

1.单向链表:含有链表内容和下个链表的指针 2.双向链表:含有链表内容和上下两个链表的指针 3.带头和不带头:哨兵位的头结点(不存储有效数据),主要区别在于链表为空时会存在一个哨兵位节点,优点…

【C#】基础巩固

最近写代码的时候各种灵感勃发,有了灵感,就该实现了,可是,实现起来有些不流畅,总是有这样,那样的卡壳,总结下来发现了几个问题。 1、C#基础内容不是特别牢靠,理解的不到位&#xff…

WebSocket实现HTML+SpringBoot聊天功能,小程序+SpringBoot聊天功能

目录 一、认识WebSocket 二、HTML实现聊天 三、微信小程序实现聊天 一、认识WebSocket 1.首先博主在初学Java时自我感觉走了很多弯路,因为以前见识短,在接触聊天功能时根本就没能想到有WebSocket这个聊天框架,就只能用底层的UDP或TCP实现聊…

2.Kubernetes基础-1

Kubernetes基础-1 掌握Kubernetes,需要我们有扎实的docker基础。 深入了解pods之前,我们需要: 应用程序已经开发并打包成Docker镜像,并且在Docker存储库(如Docker Hub)中可用,可下载Kubernet…

【GPU】深入理解GPU硬件架构及运行机制

深入理解GPU硬件架构及运行机制 作者:Tim在路上​ 曾看到有一篇名为《The evolution of a GPU: from gaming to computing》的文章。 这篇文章非常热烈的讨论了这些年GPU的进步,这引发了我们的一些思考: 为什么我们总说GPU比CPU要强大,既然…

unity学习笔记----游戏练习07

一、僵尸攻击和植物的掉血和销毁 当僵尸接触到植物开始攻击时会持续削减植物的血量,当植物血量为零时就销毁当前植物。 在plantManager中, 为植物添加一个血量HP 100, public int HP 100; 在写一个减少血量的方法,来减少血…

心理学大纲

简介 psychology,“psyche”(ψυχή):意为"soul"(灵魂),即对我们灵魂的研究 我的学习的目的 了解人精神世界的模型,人格的形成],作为观察分析他人内心的理论指导,便于我实践了解情绪的机理,…

Java面试题(6)

28.创建线程池有哪几种方式 newFixedThreadPool(int nThreads) :创建一个固定长度的线程池,如果有线程发生错误而结束, 线程池会补充一个新线程。 newCachedThreadPool() :创建一个可缓存的线程池,会自动回收和创建空…

OpenHarmony—TypeScript到ArkTS约束说明

对象的属性名必须是合法的标识符 规则:arkts-identifiers-as-prop-names 级别:错误 在ArkTS中,对象的属性名不能为数字或字符串。通过属性名访问类的属性,通过数值索引访问数组元素。 TypeScript var x { name: x, 2: 3 };c…

WWDG喂狗

3F 是0111111 40 是1000000 0X7F 127 0X5F 95 127-9532 注意:中断是在0x40,在0x40喂狗则程序不会复位 在0x5F之前喂狗会复位,减小到63以下也会复位 在0x5F与0x3F之间喂狗会继续执行,不会复位 WWDG_HandleTypeDef WWDG_Handler; //窗口看门狗句柄//初始化窗口看门狗…

项目解决方案:非执法视频监控系统项目设计方案

目 录 一、概述 (一)前言 (二)设计思路 (三)设计原则 1、实用性 2、可靠性 3、安全性 4、先进性 5、开放性 6、易管理、易维护 (四)设计依据 二、方案总…

【MySQL】阿里云服务器卸载MySQL流程

使用该命令查询当前安装的MySQL rpm -qa | grep mysql使用rpm -ev接上相应名称删除这些项目,推荐从下往上逐个卸载 接下来使用find / -name mysql查询系统内剩余的MySQL文件 最后使用rm -rf接对应文件目录删除 收尾再次使用find / -name mysql查询,No…

关于鸿蒙系统开源和技术细节的一些探讨

1月18日在深圳举办了“鸿蒙生态千帆启航仪式”,这也是华为鸿蒙开启生态进阶的信号。在政策的叠加下,鸿蒙未来必定是势不可挡的。我们这些程序员也得与时俱进,熟悉鸿蒙的技术和细节,别在经济寒冬里被淘汰了。 官方称 Harmony OS N…