将 BoringSSL 与 Hazelcast IMDG 一起使用的正确配置设置是什么? 为什么要检查 Java 11

问题描述

我将 Hazelcast 作为缓存服务运行,看来我可以使用 BoringSSL 提高性能,这更简单,因为我不需要安装其他软件

阅读他们的文档:https://docs.hazelcast.com/imdg/4.1.2/security/integrating-openssl.html

我看到我只需要两个 jar,但我没有看到任何关于配置设置的提及。我是否只将 Java SSL 设置与 BasicSSLContextFactory 一起使用?

我知道我可以使用此处提到的 com.hazelcast.nio.ssl.BasicSSLContextFactory https://docs.hazelcast.com/imdg/4.1.2/security/tls-ssl.html#tlsssl-for-hazelcast-members 来实现 Java SSL

他们还为 OpenSSL 集成提供 com.hazelcast.nio.ssl.OpenSSLEngineFactory (https://docs.hazelcast.com/imdg/4.1.2/security/integrating-openssl.html#using-openssl)

解决方法

BoringSSL 是使用 OpenSSL 的库。所以 this link 是一个很好的来源。但是,如果您不绑定旧的 Java 版本,那么现在 Java TLS 比 OpenSSL 更快,因此不需要 BoringSSL。

由于 SSL 是 Hazelcast Enterprise 的一项功能,如果您需要更详细的帮助,请随时提出 Hazelcast Zendesk Ticket

,

从 Hazelcast 4.0 版开始,决定使用哪个 TLS 引擎的逻辑如下:

  • Java 版本 和 netty-tcnative 包(包装 OpenSSL、BoringSSL 等)在类路径上时:使用 {{ 1}};
  • 所有其他情况下:使用OpenSSLEngineFactory

当然,您不需要使用默认值,但您可以使用您选择的工厂指定 BasicSSLContextFactory 配置属性。

您可以在 factory-class-name 中使用与 OpenSSLEngineFactory 中相同的属性(例如 BasicSSLContextFactorykeyStore*)。不过,配置 trustStore* 的原生方式是使用 OpenSSLEngineFactory 和文档 section about OpenSSL 中提到的其他属性。

为什么要检查 Java 11

如上所述,默认情况下,keyFile 不用于 Java 11 及更新版本。该决定基于 Hazelcast 性能测试,该测试显示了与 Java 8 一起使用时 OpenSSL 的性能优势,但与 Java 11(或更高版本)一起使用时则没有。

以下是这些测试的吞吐量图(2019 年执行)。

TLSv1.2 TLS 1.2

TLSv1.3 TLS 1.3

相关问答

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