当前位置: 首页 > news >正文

什么情况下使用ActiveMQ

紧耦合应用系统存在许多问题

要将紧耦合系统重构成松耦合系统是一件值得但比较繁琐的事情

使用松耦合的主要优势体现在将同步改为异步

使用异步通信,应用程序将从接收者反馈的等待中解放出来,其他的任务可以得到执行,这样提高了应用程序的效率

只要是两个应用程序间需要通信的情况,都可以考虑使用JMS,不论这种通信是在本地的(就是通信的两个应用程序在同一台主机上),还是分布在不同机器上

尽管是在同一个主机上的两个应用程序需要通信也可以使用ActiveMQ。ActiveMQ可以确保消息投递成功并采用异步方式通信

多个需要通信的应用程序在同一个机器上的情况下,您可以考虑在执行机上独立运行ActiveMQ或者将ActiveMQ嵌入到Java应用服务中

无论采用哪种方式,都可以确保应用程序能够发送和接收消息

您可以选择订阅模式(pub/sub)或者采用PTP(point to point)模式,这两种模式都无需等待执行反馈信息。

每一个应用程序都可以简单的将消息发送给ActiveMQ,然后继续做其他的工作;应用程序无需阻塞式等待消息的返回。

对于分布在多台主机上的应用程序来说,可以使用多种布置策略

主要包括单一ActiveMQ实例和多ActiveMQ实例。

单一ActiveMQ实例是一个简单解决方案。

所有的应用程序都向同一个ActiveMQ中介发送和接收消息,这与上面提到的单机多服务雷同

单一的ActiveMQ可以布置到一台单独的主机上,也可以和其中的一些服务布置在一起。重要的是,所有的应用必须能够直接与ActiveMQ中介进行交互

第二种情况比较复杂,但是有ActiveMQ来负责远程通信,而不是应用程序自身。在这种场景下,每一个应用程序都会实例化一个ActiveMQ(无论是嵌入式的还是独立式的),应用程序从其本地的ActiveMQ发送和接收消息

之后这些ActiveMQ实例将会以一种联合的方式协同工作。消息将会基于每一个应用的要求在多个ActiveMQ中介间传递到远程的处理者。在ActiveMQ中,这种模式被称为netWork of brokers。采用这种模式对于处理大量的ActiveMQ消息是可行的,但是,我们往往需要减轻网络拓扑的复杂性,这样直接将消息投递到远程接收者的ActiveMQ是不可行的。在后一种情况下,不同的协议使用可以使ActiveMQ更轻松的传递消息。

相关文章:

  • 【读代码】端到端多模态语言模型Ultravox深度解析
  • Flask项目实践:构建功能完善的博客系统(含评论与标签功能)
  • C++ 蓝桥 STEMA 真题模拟测试卷一(选择题)
  • FastMCP:为大语言模型构建强大的上下文和工具服务
  • 系统架构设计(九):分布式架构与微服务
  • 系统架构-大数据架构设计
  • 【2025 技术指南】如何创建和配置国际版 Apple ID
  • 一个可拖拉实现列表排序的WPF开源控件
  • nt!MiInitializePfn函数分析之nt!MiPfPutPagesInTransition函数的关键一步
  • 区块链基本理解
  • 淘宝商品主图标题api接口(附API接口文档)
  • 实验6分类汇总
  • uniapp-商城-61-后台 新增商品(添加商品到数据库)
  • C# DataGrid功能总览
  • 04_决策树
  • 力扣-比特位计数(统计一个数二进制下1的个数)
  • 【部署】读取excel批量导入dify的QA知识库
  • Linux 的 UDP 网络编程 -- 回显服务器,翻译服务器
  • SpringBoot启动流程深入分析
  • 自定义类、元组、字典和结构体对比——AutoCAD C# 开发中建立不同对象之间的联系
  • 回家了!子弹库帛书二、三卷将于7月首次面向公众展出
  • 秦洪看盘|风格有所转变,热钱回流高弹性品种
  • 上海老字号卖黄金,与动漫IP联名两周销售额近亿元
  • 魔都眼|锦江乐园摩天轮“换代”开拆,新摩天轮暂定118米
  • 上海静安将发放七轮文旅消费券,住宿券最高满800元减250元
  • 南方降水频繁暴雨连连,北方高温再起或现40°C酷热天气