开发环境
GoLand版本:2022.3.4
问题原因
JDK 中的 TLS v1.3 实现引起
解决办法
- 使用 SOCKS 代理代替HTTP代理
-
禁用 Space 和 Code With Me 插件
-
禁用 TLS v1.3,参考:https://stackoverflow.com/questions/54485755/java-11-httpclient-leads-to-endless-ssl-loop
禁用 TLS v1.3方法
这里以IDEA为例,安装路径为:D:\Applications\JetBrains\IntelliJ IDEA 2022.3.3
修改文件:D:\Applications\JetBrains\IntelliJ IDEA 2022.3.3\jbr\conf\security\java.security
在 jdk.tls.disabledAlgorithms= 添加 TLSv1.3 ,从而禁用 TLS v1.3
如果你装了 JetBrains 多个 IDE ,包括IDEA,PyCharm,GoLand等,一个一个修改文件比较麻烦,Windows系统可以使用下面脚本(其他系统思路类似),新建文件:fix-high-cpu-usage.ps1
$paths = @(
'D:\Applications\JetBrains\CLion 2022.3.3\jbr\conf\security',
'D:\Applications\JetBrains\DataGrip 2022.3.3\jbr\conf\security',
'D:\Applications\JetBrains\GoLand 2022.3.4\jbr\conf\security',
'D:\Applications\JetBrains\IntelliJ IDEA 2022.3.3\jbr\conf\security',
'D:\Applications\JetBrains\PyCharm 2022.3.3\jbr\conf\security',
'D:\Applications\JetBrains\WebStorm 2022.3.4\jbr\conf\security'
)
foreach ($path in $paths) {
Get-ChildItem -Path $path -Recurse -File -Filter "java.security" | ForEach-Object {
$file = $_
$content = Get-Content -Path $file.FullName
$updatedContent = $content | ForEach-Object {
if ($_ -match "jdk.tls.disabledAlgorithms=SSLv3,") {
$_ -replace "SSLv3", "TLSv1.3, SSLv3"
} else {
$_
}
}
$updatedContent | Set-Content -Path $file.FullName
Write-Host "Updated: $($file.FullName)"
}
}
参考
- https://youtrack.jetbrains.com/issue/IDEA-283482