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 的 NoSuchMethodError

    java lang NoSuchMethodError org apache activemq thread TaskRunnerFactory setThreadClassLoader Ljava lang ClassLoader V a
  • Spring boot - 与单独的服务共享嵌入式 JMS 代理

    我有两个服务应该通过 ActiveMQ 相互通信 当我将接收器和发送器放在一个服务中时 一切都运行良好 但是当我将它们分开时 我遇到了一个奇怪的 activemq 异常 这是服务A的配置 EnableScheduling SpringBoo
  • Linux下activemq的安装与安装成功确认

    一 下载 apache activemq 5 14 0 bin tar gz 二 安装 将压缩包拷入linux内 进行解压 tar zxvf apache activemq 5 14 0 bin tar gz 与redis nginx不同的
  • 如何使用 @JmsListener 暂停和开始消费消息

    我使用的是 Spring Boot 版本 1 3 2 我正在使用 JmsListener 来使用来自 activemq 的消息来获取我使用 JmsTemplate 创建 生成的消息 这是代码 JmsListener destination
  • 获取ActiveMQ中的队列名称列表

    我尝试过下面的代码来获取 ActiveMQ 中的队列列表 但它不起作用 我的 ActiveMQ 有 4 个队列 try ActiveMQConnection makeConnection URL start Set
  • 是否可以镜像 ActiveMQ 中的单个队列?

    我在生产系统中运行 ActiveMQ 我们的一些队列数量非常多 有些队列数量非常少 我有兴趣镜像低容量队列之一 以便我可以围绕收到的消息构建非正式的监视服务 很遗憾 我能找到的唯一文档似乎暗示镜像队列是全有或全无 您要么为您拥有的每个队列创
  • 如何在队列上设置 ActiveMQ redeliveryPolicy?

    如何在队列上的 ActiveMQ 中设置 redeliveryPolicy 1 在文档中 请参阅 activeMQ 重新传送 http activemq apache org redelivery policy html 说明您应该在 Co
  • 如何在 ActiveMQ 5.2 中打开 JMX

    在 ActiveMQ 5 2 中启用 JMX 的正确方法是什么 我见过相互冲突的文档 所以我想知道是否有人知道正确的配置文件更改应该是什么 我想我可以通过更改用于启动 ActiveMQ 的批处理文件来使其工作 但我真的不知道
  • 如何从 Web 应用程序监听消息队列? (汤姆猫、ActiveMQ)

    我很高兴改善我的Web应用程序运行在 Apache 上Tomcat An ActiveMQ添加JMS服务器来发送和接收消息 我已经可以发送和接收消息 但需要接收方的帮助 我的网络应用程序应该如何持续监听一个队列来接收消息 新消息到达 服务器
  • 计算 JMS 队列中的消息数

    检查 JMS 队列并获取其中所有消息的最佳方法是什么 如何统计队列中消息的数量 Thanks 使用 JmsTemplate public int getMessageCount String messageSelector return j
  • 多个 Activemq 远程代理的 Spring 配置

    如何在spring上下文中配置多个远程activemq代理 不同的IP地址 以下是 1 个远程代理的配置 我正在使用camel来创建路由 用于在多个远程代理中的不同队列中生成和使用消息 根据以下路由 系统如何知道每个队列属于哪个远程代理 项
  • Activemq 关闭失败然后终止进程

    我正在实施复制的 leveldb activemq 设置 我有 3 个 activemq 实例在同一个盒子上运行 我正在配置文件中更改它们的 rmiPort amqpport 和 openwire 端口 配置看起来像这样
  • 我如何向 Activemq 发送消息

    我从来不工作JMS 最近我下载了Activemq并更改端口号61616 to 61617 in all conf activemq xml文件 我从命令提示符运行以下命令并在浏览器上打开控制台页面 C Users Infratab Bang
  • ActiveMQ JMS XA Atomikos - 事务未启动错误

    情况是我们想要使用 XA 事务来协调 ActiveMQ 和 Hibernate Sql Server 2008 之间的活动 我们正在使用 春季3 0 5 休眠3 6 2 ActiveMQ 5 5 0 原子3 7 我们看到与尚未启动的事务相关
  • 如何在 AUTO_ACKNOWLEDGE JMS 会话场景中模拟消息重新传递?

    在下面的测试中 我尝试模拟以下场景 消息队列启动 启动设计为在消息处理期间失败的消费者 产生一条消息 消费者开始处理消息 在处理过程中抛出异常来模拟消息处理失败 失败的消费者被停止 另一个消费者启动的目的是接收重新传递的消息 但我的测试失败
  • 在 ActiveMQ 中查看消息时,代理无法使用可序列化类:java.lang.ClassNotFoundException

    我想查看已在 ActiveMQ 队列中排队的消息内容 我打开网络控制台 http localhost 8161 admin queues jsp http localhost 8161 admin queues jsp 并单击队列消息的消息
  • 由于地址已在使用错误,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 中执行此操作 我会将其分为 频道 一个频道有很多用户 用户 一个用户有一个频道但有多条
  • 如何使用 NMS 和 C# 识别 ActiveMQ 断开连接

    我有一个 C 发布者和订阅者 它们使用 ActiveMQ 和 NMS 相互通信 一切工作正常 除了我无法知道 ActiveMQ 何时出现故障 这对于消费者来说尤其不利 他们停止获取数据 但除了数据停止显示之外 不会引发任何错误或事件 有没有
  • ActiveMQ 内存消耗通过屋顶(页面文件)...该怎么办?

    我们使用的是旧版本的 ActiveMQ 5 3 2 请参阅 ActiveMQ可靠吗 https stackoverflow com questions 4303610 is activemq reliable 我们取消了持久性 因为我们需要

随机推荐

  • 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