在 kubernetes 环境中形成 akka-cluster 时为 Akka-Discovery Endpoints 启用 HTTPS

问题描述

我需要使用 DNS 解析器在 Kubernetes 中设置 akka-cluster(使用 Akka Classic)。我创建了一个无头服务,它能够为我的 Akka 应用程序的各种 pod 解析地址。 DNS 解析后,我可以获得各种 pod 的地址。现在我的 Akka-Management 运行在 Https 上,

因此,当一个 pod 尝试连接到各种其他 pod 的管理端点时,它需要使用“HTTPS”而不是“HTTP”,但 Akka 认使用“http”。有没有办法在 Java 中修改这种行为

解决方法

是的,有:要启用 HTTPS,您必须通过向其提供 HttpsConnectionContext 对象来实例化您的服务器。

您可能应该执行以下操作:

Http.get(system).newServerAt("localhost",8080)
    .enableHttps(createHttpsContext(system))
    .bind(app.createRoute());

前面的示例取自 official documentation,它也展示了 createHttpsContext(system) 方法的工作原理。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...