ActiveMQ:如何以编程方式监控嵌入式代理

2024-04-03

我想从代码内部监控嵌入式 ActiveMQ 5.8 代理。

  • 如何才能做到这一点?
  • 我需要 JMX 连接吗?我想防止暴露 JMX
  • 有没有办法访问org.apache.activemq.broker.jmx http://activemq.apache.org/maven/5.8.0/apidocs/org/apache/activemq/broker/jmx/package-summary.html没有 JMX 的 Bean?
  • 是否有 Hooks、Listeners、Events...可以附加到代理本身?
  • 如果这确实是个坏主意,为什么呢?

您可以从具有嵌入式代理的进程内访问所有标准 JMX MBean,而无需创建将它们暴露给外界的 JMX 连接器。首先,您需要告诉嵌入式代理启用 JMX 但不创建连接器。

    brokerService = new BrokerService();
    brokerService.setPersistent(false);
    brokerService.setAdvisorySupport(false);
    brokerService.setSchedulerSupport(true);
    brokerService.setPopulateJMSXUserID(true);
    brokerService.setSchedulerSupport(true);
    brokerService.getManagementContext().setCreateConnector(false);

然后在代码中您可以正常访问 JMS MBean,例如获取 BrokerViewMBean:

protected BrokerViewMBean getProxyToBroker() throws MalformedObjectNameException, JMSException {
    ObjectName brokerViewMBean = new ObjectName(
        "org.apache.activemq:type=Broker,brokerName=localhost");
    BrokerViewMBean proxy = (BrokerViewMBean) brokerService.getManagementContext()
            .newProxyInstance(brokerViewMBean, BrokerViewMBean.class, true);
    return proxy;
}

或者获取 QueueViewMBean:

protected QueueViewMBean getProxyToQueue(String name) throws MalformedObjectNameException, JMSException {
    ObjectName queueViewMBeanName = new ObjectName("org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName="+name);
    QueueViewMBean proxy = (QueueViewMBean) brokerService.getManagementContext()
            .newProxyInstance(queueViewMBeanName, QueueViewMBean.class, true);
    return proxy;
}

类似地还有一个 TopicViewMBean。

protected TopicViewMBean getProxyToTopic(String name) throws MalformedObjectNameException, JMSException {
    ObjectName topicViewMBeanName = new ObjectName("org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Topic,destinationName="+name);
    TopicViewMBean proxy = (TopicViewMBean) brokerService.getManagementContext()
            .newProxyInstance(topicViewMBeanName, TopicViewMBean.class, true);
    return proxy;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ActiveMQ:如何以编程方式监控嵌入式代理 的相关文章

  • activemq启动成功但web管理页面却无法访问

    前提 在linux启动activemq成功 本地能ping通linux 处理方案 确定防火墙是否关闭 有两种处理方案 第一种 关闭防火墙 第二种 暴漏8161和61616两个端口 netstat lnpt 查看8161和61616端口 注意
  • 获取ActiveMQ中的队列名称列表

    我尝试过下面的代码来获取 ActiveMQ 中的队列列表 但它不起作用 我的 ActiveMQ 有 4 个队列 try ActiveMQConnection makeConnection URL start Set
  • 如果代理不可用,ActiveMq 不会停止

    停止 Apache ActiveMQ 5 15 6 时出现以下错误 设置createConnector false 因为不需要默认的 JMX 连接 注意 启动ActiveMQ activemq admin bat start 停止Activ
  • Apache Camel AMQP - ActiveMQ AMQP 标头不匹配值 1,期望 0

    我正在尝试创建一个通过 AMQP 与 ActiveMQ 集成的 Apache Camel 应用程序 我一直在按照提供的 骆驼示例 spring jms 项目 它通过标准 TCP 连接 但我已修改为使用我的独立 ActiveMQ 5 8 安装
  • 如何设置activemq的队列最大长度

    我想知道是否可以在activemq上配置队列的最大长度 以便当队列的长度达到限制时 入队操作将失败或抛出异常 有人知道这个问题吗 任何帮助将不胜感激 多谢 看一下生产者流程控制http activemq apache org Produce
  • Spring Batch - 并非所有记录都通过 MQ 检索进行处理

    我对 Spring 和 Spring Batch 相当陌生 所以如果您有任何疑问 请随时提出任何澄清问题 我发现 Spring Batch 存在问题 无法在测试或本地环境中重新创建 我们的日常工作是通过 JMS 连接到 Websphere
  • 如何从 Web 应用程序监听消息队列? (汤姆猫、ActiveMQ)

    我很高兴改善我的Web应用程序运行在 Apache 上Tomcat An ActiveMQ添加JMS服务器来发送和接收消息 我已经可以发送和接收消息 但需要接收方的帮助 我的网络应用程序应该如何持续监听一个队列来接收消息 新消息到达 服务器
  • 我什么时候应该关闭在无状态会话 bean 中创建的 JMS 连接?

    我有一个关于何时关闭在无状态会话 Bean EJB 中创建的连接的一般性问题 连接到 ActiveMQ 并且它们是在 bean 的构造函数中创建的 然后在方法中使用该连接 我想知道关闭该连接的适当时间 地点是什么时候 有一个单独的方法来关闭
  • ActiveMQ NMS C# 对象消息使用什么序列化方法?

    我计划使用 Apache NMS 进行 ActiveMQ 消息传递 并且想知道我发送的对象将使用什么序列化方法 XML 二进制 什么控制序列化以及如何自定义它 有人有使用 C 对象执行此操作的经验吗 您知道有哪些陷阱吗 IObjectMes
  • 无法使用 Node.js 连接到 Apache ActiveMQ

    背景 尝试使用 AMQP 1 0 协议通过以下方式连接到我的 Apache ActiveMQ 代理amqp10 https www npmjs com package amqp10 我使用以下代码 改编自自述文件中的原始示例 const A
  • 如何使用 Spring WebSocket 向 STOMP 客户端发送错误消息?

    我正在使用 Spring 的 STOMP over WebSocket 实现和功能齐全的 ActiveMQ 代理 当用户SUBSCRIBE对于一个主题 有一些权限逻辑 必须经过一些权限逻辑 才能成功订阅 我正在使用 ChannelInter
  • activemq-all“5.15.3”不适用于 Spring 5

    我正在将 Spring 从 4 x x 更新到 Spring 5 0 3 该项目使用ActiveMQ版本5 15 3 当我尝试使用最新版本的 Spring 部署应用程序时 出现以下错误 Caused by java lang NoSuchM
  • ActiveMQ:在没有代理的情况下启动消费者

    我正在编写一个从队列消费的 JMS 客户端 如果重要的话 我的经纪人是 activemq 一项要求是 即使代理关闭 客户端也应该启动 在这种情况下 它的行为应该就像队列中没有消息一样 一旦代理启动并且消息开始出现 就会做出相应的行为 问题是
  • ActiveMQ如何处理关闭的会话

    我正在使用 ActiveMQ 将电子邮件消息排入队列 消费者读取队列并发送电子邮件 在启动时 我注册一个生产者并永久缓存它 PooledConnectionFactory factory new PooledConnectionFactor
  • ActiveMQ NMS:当代理关闭时,connection.start() 会因故障转移协议而挂起

    我有使用 nms activemq 1 5 0 的 C 应用程序 当我的应用程序启动时 它尝试使用故障转移协议连接到代理 我有两个主从配置的代理 如果两个经纪人都关闭了 我的应用程序就会因为以下原因而陷入等待状态 connection st
  • 从 HTTP 端点发送消息到 JMS

    我正在尝试使用骆驼路由 它将接受 http 端点上的有效负载 然后将该有效负载写入 JMS 队列 到目前为止我所拥有的路线如下 但是一条空消息被传递到 jms 队列 消息到达那里 但没有正文 路线如下
  • 各个队列是否可以有死信队列

    目前 我的 ActiveMQ 服务器中有一个名为hello world 每当消息处理失败时 ActiveMQ 都会创建一个名为的默认目录ActiveMQ DLQ 是否可以将该名称更改为类似的名称hello world DLQ 原因是我将来可
  • 由于地址已在使用错误,Activemq 无法运行

    如何解决错误 Java Runtime Oracle Corporation 1 7 0 05 E Program Files Java jdk1 7 0 05 jre Heap sizes current 1004928k free 99
  • MongoDB 架构设计 - 实时聊天

    我正在启动一个项目 我认为该项目特别适合 MongoDB 因为它提供的速度和可扩展性 我目前感兴趣的模块是与实时聊天有关的 如果我要在传统的 RDBMS 中执行此操作 我会将其分为 频道 一个频道有很多用户 用户 一个用户有一个频道但有多条
  • Java 1.4 上的 ActiveMQ 客户端

    我们在最新版本 5 6 0 中使用 Active MQ 现在我们遇到一个问题 必须连接一个新客户端 不幸的是这个客户端是用IBM JDK 1 4开发的 将 ActiveMQ 添加到应用程序会导致以下错误 UNEXPECTED ERROR O

随机推荐

  • Gatsby 客户端重定向到外部 URL 在 Netlify 上不起作用

    我需要从 Netlify 上托管的 Gatsby 站点上的页面执行简单的客户端重定向到外部 URL 它在本地工作正常 但部署后似乎没有任何作用 Gatsby 的本机 createRedirect 功能似乎也存在一个错误 因此它不允许重定向到
  • 正确中止或取消 PostAsync

    使用 HttpClient 时是否有保证取消帖子的方法 我目前有一个调用 do PostAsync 的方法 我试图使用取消令牌取消该调用 但它似乎实际上并没有中止 停止操作 我仍然可以看到我上传的图像已正确发布 我在这里做错了什么 或者 H
  • 用户警告:布尔系列键将被重新索引以匹配 DataFrame 索引

    使用此语句时 会在单个语句中显示多个警告 Internaldfdeny pd DataFrame Count Internaldf Internaldf Status deny Internaldf SrcIP NA Internaldf
  • 如何在打印机中打印图像文件

    我编写了一个简单的程序来在 JSF 中打印图像 我有一张图像 sampleImage png 我已经将我的电脑连接到打印机 我手动打开图像并选择打印选项 然后我从打印机获得图像 现在我想使用 javascript 打印图像 文件名 imag
  • 配置文件实体框架

    我有以下示例代码 Context context new Context Repository repository new Repository context Post post repository First
  • Go中的函数和方法有什么区别?

    我正在尝试开始使用 Go 和文档 http golang org非常好 我在文档中没有找到函数和方法之间的区别 据我目前的理解 函数是 全局 的 这意味着我不必导入包来使用函数 它们总是存在的 方法绑定到包 它是否正确 据我目前的理解 函数
  • 需要 Spark sql 中 SQL IsNumeric 函数的等效功能

    就像我们有 SQL ISNUMERIC 函数来验证表达式是否为数字一样 我需要 Spark SQL 中是否有任何等效的函数 我试图找到它但无法找到它 请问有人可以提供帮助或建议吗 尝试使用spark udf 这种方法将帮助您克隆任何函数 s
  • 在 javascript 中将变量传递给异步函数(promise)

    我有以下代码循环运行 var index fileNames x lastIndexOf 1 var currentImageName fileNames x substr index if currentImageName indexOf
  • 如何在vim中刷新标签列表?

    当我对文件进行更改 例如添加功能 时 如何使标签列表在保存更改后自动更新其窗口中的 标签列表 我调整了我的设置C 代码补全 vim 提示 http vim wikia com wiki C 2B 2B code completion map
  • 为什么 firePropertyChange(String propertyName, Object oldValue, Object newValue) 受保护而不是公开?

    嗯 问题是我正在研究一个IDateEditor接口实现来自日历 http www toedter com en jcalendar 图书馆 我注意到Component firePropertyChange 字符串属性名称 对象旧值 对象新值
  • 来自设备的 dSYM 文件

    我的应用程序崩溃了 两天来我找不到重现崩溃的确切方法 所以 我想解码 dSYM 文件 看看有什么问题 希望有帮助 如何从设备获取 dSYM 文件 您可能需要从 Xcode 构建产品获取 dSYM 打开 Xcode 管理器 在 Xcode 中
  • Boost Spirit x3 - 惰性解析器

    有最新的吗boost spirit x3实施lazy解析器 我发现它在文档 https www boost org doc libs develop libs spirit doc x3 html spirit x3 quick refer
  • 对于移动 Safari 来说 AJAX 响应太大?

    我在调试移动 Safari 的 Web 应用程序时遇到了一些问题 该 Web 应用程序是相当复杂的服务器端模拟工具的前端 该网络应用程序的工作原理概述如下 用户将看到一个屏幕 他们可以在其中填写要执行的模拟的值 用户单击 运行模拟 此时将对
  • 如何获取 Nodejs 中显示的 console.log 行号?

    有一个旧的应用程序 它使用以下命令打印出大量消息console log 但我就是找不到哪些文件和行console log叫做 有没有办法连接到应用程序并显示文件名和行号 每个调用都有完整的堆栈跟踪有点吵 我刚刚改进了 noppa 的解决方案
  • 如何使用php传递和访问数组变量

    我有一个数组 param 在给出 Print r 时 输出如下 Array pattern gt status gt Array 0 gt 0 1 gt 4 我必须将状态值传递给一个函数 例如 function value action p
  • 如何使用ggplot2从geom_tile(热图)中删除白线

    我无法去除热图中图块之间的白线 下面是我的代码和图片 以前有人遇到过这种情况吗 t lt ggplot Drug heatmap df final aes x reorder Drug Total Deaths y Start Date f
  • 分配内存的嵌套结构

    gcc c89 我在这一行得到堆栈转储 strcpy comp gt persons gt name Joe 但是 我已经分配了内存 所以不确定为什么我会得到它 我在这里错过了什么吗 非常感谢您的任何建议 include
  • 将 WooCommerce 订单项自定义字段总和保存为新元数据

    当在此 WooCommerce 商店中订购特定产品时 两个元值将添加到订单中 存储元值的两个字段位于wp woocommerce order itemmeta 元键是 quantity assemblycost 我想在下新订单时以编程方式创
  • 从字符串 Django 模板中删除第一个字符

    我知道这个问题已经被问过多次 但每个人都达到的解决方案 和文档 似乎并不适合我 尝试删除第一个字符 Code is picture picture path slice 1 但结果仍然是 DOF mrD5T49 jpg 试图获得前导点 我是
  • ActiveMQ:如何以编程方式监控嵌入式代理

    我想从代码内部监控嵌入式 ActiveMQ 5 8 代理 如何才能做到这一点 我需要 JMX 连接吗 我想防止暴露 JMX 有没有办法访问org apache activemq broker jmx http activemq apache