【发布时间】:2023-03-25 07:53:01
【问题描述】:
在使用 Okhttp3 从 Dataflow 作业请求(获取和发布)HTTPS url 时,程序抛出 SSL 握手异常并失败。确切的消息是 "javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure"
在 Dataflow 中,相同的代码早在 3-4 周(11 月 23 日之前)就可以运行。现在它因上述异常而失败。由于服务器(HTTPS URL 提供程序)的一些变化,这是否会成为一个问题?还是与我的数据流/光束设置有关。
SDK 和 lib 版本 -
Apache Beam SDK for Java 2.16.0
com.squareup.okhttp3:okhttp:4.2.2
【问题讨论】:
-
您是否尝试过更改库的版本?例如 Beam SDK for Java 2.15,您还可以探索更改库 google-http-java-client 的解决方法,如this post中的 cmets 中所述
-
是的,从昨天下半年开始,我们的数据流流作业也开始出现同样的错误。我们使用 1. Apache Beam SDK for Java 2.12.0 和 2.com.google.api.client.http (1.29.1)
-
我尝试过使用 Beam SDK 2.13,但结果没有区别。我还没有尝试更改 http java 客户端库。
-
如果 google-http-java-client 有所作为,如果您与我们分享,这将非常有价值。
-
嗨@rsantiago,我还没有尝试使用新的java客户端。相反,我现在寻求快速修复。找到 API 提供者和我们的 Dataflow 运行者之间的通用密码。幸运的是,API 提供者和 Runners 有共同的 SSL 版本。并且有共同的密码。所以我收集了 cipers 并将其添加到 Okhttp3 的连接规范中。 (并提出一个漂亮的警告评论:P)。我只有 2 个 API 提供者,所以对我来说没问题,我希望跑步者将来会得到修复。
标签: java google-cloud-platform google-cloud-dataflow apache-beam okhttp