Closed chc123456 closed 2 years ago
BinaryLogClientFactory中生成ServerId的的方法
private long getRandomServerId() { try { return SecureRandom.getInstanceStrong().nextLong(); } catch (NoSuchAlgorithmException e) { return RandomUtils.nextLong(); } }
SecureRandom.getInstanceStrong()方法在Linux环境下使用/dev/random生成随机数的种子。但是/dev/random是一个阻塞数字生成器,如果没有足够的随机数据,那么就会一直等待,迫使 JVM 阻塞。
感谢反馈,查了下确实可能出现这个问题, 下个版本更新为:new SecureRandom().nextInt(1000000) + 1
最新版本1.0.13已修复
BinaryLogClientFactory中生成ServerId的的方法
SecureRandom.getInstanceStrong()方法在Linux环境下使用/dev/random生成随机数的种子。但是/dev/random是一个阻塞数字生成器,如果没有足够的随机数据,那么就会一直等待,迫使 JVM 阻塞。