SslHandler
使用 netty与外部 SSL 终结器(如 stud 或 stunnel )相比,我的性能显着下降。完成握手的时间差约为 100 毫秒。我通过 httperf 向我的应用程序请求了数百次相同的资源,并确保在每种情况下都使用相同的密码 (DHE-RSA-AES128-SHA)。
这个问题没有得到公认的答案,但评论表明在 Java 进程前运行 SSL 终结器可能是一个好主意。
这是预期的行为吗?是否已知 Java 的 SSL 实现要慢得多,还是我的某些设置配置不正确?
Netty 人推荐 openssl 而不是 JDK SSL 有几个原因,性能就是其中之一。可以在他们的wiki上找到解释:
http://netty.io/wiki/requirements-for-4.x.html#benefits-of-using-openssl
是的,与 openssl 相比,它的速度很慢,.. 您可以尝试使用原生 openssl 绑定,例如 twitter:
https://github.com/twitter/finagle/tree/master/finagle-native
这是 apr 和 SSL 的原因之一: