我们有一个Openshift项目(项目1),其中我们使用图像设置了一个AMQ Artemis代理:amq-amq-broor-7-tech-preview/amq-broor-71-openshif。作为基本映像,我们没有任何配置,例如SSL或TLS。为了进行设置,我们使用了以下示例:https://github.com/jboss-container-images/jboss-amq-7-broker-openshift-image/blob/amq71-dev/templates/amq-broker-71-basic.yaml
在Openshift上部署映像后,我们有以下内容:
在Java中,我们尝试从另一个Openshift服务连接到代理,但收到以下错误:
[org.apache.activemq.transport.failover.FailoverTransport] (ActiveMQ Task-1) Failed to connect to [tcp://broker-amq-amqp-project1.192.168.99.105.nip.io:61616?keepAlive=true] after: 230 attempt(s) with Connection refused (Connection refused), continuing to retry.
Java代码:
user = "example";
password = "example";
String address = "queue/example";
InitialContext context = new InitialContext();
queue = (Queue) context.lookup(address);
ConnectionFactory cf = (ConnectionFactory) context.lookup("ConnectionFactory");
try (Connection connection = cf.createConnection(user, password);) {
connection.start();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
}
JNDI属性文件
java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
java.naming.provider.url=failover:(tcp://broker-amq-amqp-project1.192.168.99.105.nip.io:61616?keepAlive=true)?randomize=false
queue.queue/example=example/strings
看起来好像您正在尝试使用OpenShift路由连接到代理,而没有为相关服务定义路由。您(或安装程序)为Jolokia定义了一个路由,但没有代理的路由。
这里不会显示有用的错误消息,因为任何以正确域结尾的主机名都将连接到OpenShift路由器。然而,如果没有有效的路由,路由器将不知道如何处理连接,并且可能只是将某种毫无意义的错误数据包返回给JMS客户机。
如果您尝试从与代理相同的OpenShift命名空间中的另一个应用程序连接到代理,则不需要通过路由器进行连接——只需使用服务名称(大概是broer-amq-tcp
)和服务端口显式地在您的JMS设置中。
如果您从同一集群中不同OpenShift命名空间中的另一个应用程序连接到代理,您可能能够配置网络子系统以允许跨命名空间直接连接到服务。不幸的是,在安装OpenShift后设置起来有点繁琐。
如果您是从OpenShift命名空间外部连接到代理,并且不能直接使用服务,则必须通过路由进行连接,并且必须使用加密连接。这并不一定是为了安全——路由器将从SSL头读取SNI信息,以确定如何路由请求。
因此,您需要为代理的SSL端口创建服务,为该服务创建路由,从代理导出服务器证书,将这些证书导入您的客户端,并将客户端配置为通过路由器使用SSL连接URI。显然,如果可以的话,直接使用服务更容易;)
所有这些设置步骤都在Red Hat的OpenShift文档AMQ7中进行了描述:
https://access.redhat.com/documentation/en-us/red_hat_amq/7.5/html/deploying_amq_broker_on_openshift/index
尽管我不能否认,那份文件中有很多信息需要仔细阅读。
我试图连接到mysql数据库使用hibernate从cfg文件作为 虽然我的连接字符串、用户名、密码是正确的,并且在其他具有基本jdbc连接的项目中运行良好,但当我使用hibernate尝试它时,我在控制台上遇到了这个错误 是的,数据库服务器已启动并运行,但来自此Hibernate应用程序的连接被拒绝
我正在尝试使用docker容器运行ELK stack。但我得到的错误是,kibana无法与elasticsearch建立联系。 这是我的docker comp的内容 我日志的内容。形态 我有elasticsearch容器和kibana容器上的卷曲,对我来说很好 curl localhost:9200/_cat/index?漂亮的 增加虚拟内存大小后 root@sfbp19:~/docking je
试图在localhost中建立从app容器到mysql容器的连接,出现连接拒绝异常 我们正在采取一种docker的方法来调用rest api服务来采用微服务的方法。我们正在建立应用程序容器和mysql容器之间的连接,同时我们编写了一个docker-compose文件,创建了mysql容器和应用程序容器,为这两个容器公开了端口。下面是运行docker-compose文件docker-compose
我正在尝试运行卡桑德拉,但每次它在连接时都会给出相同的错误...有什么我需要在配置文件或属性文件中编辑的吗? ('无法连接到任何服务器',{'127.0.0.1:9042 ':错误(61,"尝试连接到[('127.0.0.1 ',9042)]。最后一个错误:连接被拒绝")}) 启动cassandra时出错
我已经确认Alpine/Socat正在http://127.0.0.1:2376上运行/可能是守护进程未连接的问题,请提供帮助。使用OSX的TIA 连接被拒绝:/127.0.0.1:2376 java.net.connectException:连接被拒绝导致:io.netty.channel.abstractChannel$annotatedConnectException:连接被拒绝:/127.