TLS v1.3 导致JetBrains IDE jdk.internal.net.http.common CPU占用高

开发环境

GoLand版本:2022.3.4

问题原因

JDK 中的 TLS v1.3 实现引起

解决办法

  • 使用 SOCKS 代理代替HTTP代理

在GoLand中设置

  • 禁用 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)"
    }
}

参考

  1. https://youtrack.jetbrains.com/issue/IDEA-283482
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值