问题标签 [amq]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 stomp.py 的 Artemis AMQ 订阅者需要哪些证书来建立与服务器的 SSL 连接
我正在使用 stomp.py 建立一个 Stomp1.2 SSL 连接到ActiveMQ-Artemis/2.7.0.redhat-00056 ActiveMQ Artemis Messaging Engine
. 我无法控制服务器,我得到了以下说明。(我是下面提到的订阅者。)
另一方将向每个订阅者提供一个信任库文件、一个证书文件和一对用户 ID 和密码。根据订阅者系统的要求,订阅者可能需要将证书文件导入其服务器证书存储区,或者订阅者可能需要将信任库文件嵌入到其连接编码中。
- 我需要任何 AMQ/Artemis 配置来嵌入证书吗?或者我可以通过http://jasonrbriggs.github.io/stomp.py/stomp.html#module-stomp.connect
set_ssl
中的方法传入所需的文件吗? - 我收到的文件是
broker_cert.cer.txt
和client.ts
。我不确定如何使用它们。我在https://stackoverflow.com/a/50774783/16235794中看到了答案,听起来我需要生成.key
和.pem
文件。但是,如果我正在生成文件,另一方应该如何验证它们呢?出于身份验证目的,我应该从另一方接收哪些文件?
jms - 从 APIGEE 代理端点调用 AMQ 侦听器
我正在从 APIGEE 边缘创建 APIGEE 代理。它的目标是一个没有 HTTP 监听器的 Mule 部署应用程序。它仅由 AMQ 侦听器触发。有什么方法可以连接到该部署的应用程序并从 APIGEE 代理触发它?
我已尝试浏览所有 APIGEE 博客,但无法获得准确和实际的解决方案。
scala - 当 AMQ 主题中没有数据可读取时如何停止流式传输
我正在使用火花流从 AMQ 读取。我希望在消息队列中没有数据时停止流式传输。我创建了一个自定义接收器,它连接到 AMQ 主题并开始读取数据,但是工作人员如何告诉驱动程序没有剩余数据,以便它可以停止流式传输。
正如您在上面看到的,当没有数据要读取时,我试图将停止标志设置为 true,但是当我运行以下命令时,该标志始终为 False,在搜索后我发现工作人员不共享变量。我试图用累加器替换它,但这也不起作用。
activemq - Red Hat AMQ 6.3 相互认证将用户映射到证书
我全新安装了 Red Hat AMQ 6.3.0.redhat-187。我知道它很旧,但这是我必须使用的。我正在尝试在 Java 客户端和服务器之间设置相互身份验证。我只希望允许证书身份验证。
我有 TLS 部分工作,因为我可以通过安全通道连接,如果客户端不提供受信任的证书,它就无法登录。我正在努力将客户端证书映射到用户。
我用来连接的 Java 代码是:
我收到了这个异常:
如果我指定存储在${activemq.base}/conf/users.properties
文件中的用户名/密码,我可以创建一个会话:
但我想使用证书而不是用户名和密码进行身份验证。这让我相信我的服务器配置不正确,但我是 JBoss AMQ 的新手,我不确定自己做错了什么。
如果我没有指定密钥库(即注释掉两个密钥库行),我会得到SSLHandshakeException: Received fatal alert: bad_certificate
预期的结果。这让我认为我的客户证书已正确通过,但它并没有被用来识别客户。
我已经尝试通过更新文件来配置 JAAS 公钥登录模块,如下所述:InstallDir/etc/keys.properties
但没有运气。
除了包含元素并且只允许单个元素外,我activemq.xml
几乎没有更改文件,如下所示:sslContext
transportConnector
我知道在配置服务器端时我缺少一些东西,但我不确定它是什么。我已经努力通过谷歌等寻找解决方案,但没有运气。我希望这里有人能指出我正确的方向。
java - 如何用自定义版本替换公共基础镜像中的基础 Java 镜像
我们正在使用 RedHat AMQ 的基础镜像,registry.access.redhat.com/jboss-amq-6/amq63-openshift
这是一个我们无法更改的公共基础。我们在 jib maven 插件中使用该图像并进行了一些更改以创建应用程序。
但是,安全部门需要对其使用的 JDK 进行更新。我们有另一个包含这些修复的图像,比方说company.com/java-with-fix
。
如何让我的基于 RedHat AMQ 的 APP 使用该公司的 JDK 基础镜像,并在 Jib 中使用?
apache-camel - AMQ212054:目标地址=...被阻止。如果系统配置为阻止,请确保您在此配置上使用消息
我正在使用 Artemis 2.7.0.redhat-00056(我认为是 AMQ 5.11)
其中一条骆驼路线是很久以前建立的。它在队列中发送 XML,然后在 bean 中进行处理。
所以它使用 JMS 风格的代码:
这在 99% 的时间里都有效,但今天我们开始得到:
除此之外,警告:
为了解决这个问题,我进入 docker 并检查了我们的 /amq/broker/data/large-messages 文件夹,并将所有这些文件移动到其他地方。它引发了一堆异常,但现在似乎正在传递新消息。
但我仍然收到 AMQ212054 'destination blocked' 警告。
那么,我该如何
a)摆脱警告
b) 解决这个问题?
我查看了文档,但我没有看到任何特别有用的东西。有一个minLargeMessageSize
字段,但是设置它会有什么不同吗?那么我是否会在发送之前检查 XML 的大小,然后有一些 if/else 语句,以使用producer.send(message);
或作为 ByteMessage 发送,如第 9.4/9.5 节,如果它是“大”消息?
编辑:(来自码头工人内部)