JGroups 4.1.0 发布了。JGroups 是一个可靠的群组通讯 Java 工具包,它基于 IP 组播,但在可靠性与组成员管理上进行了扩展。
此版本主要更新内容包括:
GraalVM / Quarkus 支持
现在可以使用 GraalVM 的原生镜像将 JGroups 编译为原生可执行文件,这意味着其它应用程序现在可以使用 JGroups 来创建原生二进制文件。
测试显示可以使用 ProgrammaticUPerf2 在大约 1 毫秒内启动一个成员。
使用 Wireshark、tshark 与 tcpdump 等网络嗅探器时,生成的 PCAP 文件可以由 JGroups 解析,并将网络数据包的内容显示为 JGroups 消息。
支持线上与离线模式。
默认的 DiagnosticsHandler(由 probe.sh 使用)使用反射,而 GraalVM 中不允许使用反射。
在创建应用程序的原生二进制文件时,可以使用此附加 DiagnosticsHandler 而不是默认的 DiagnosticsHandler,其优点是 probe.sh 仍然可以工作,即使在原生二进制文件中也是如此。
在 GraalVM 上运行时也需要:由于 JGroups 当前仅支持 TCP(MulticastSockets 当前不能在 GraalVM 上运行),因此需要为 probe.sh 提供*one*成员的地址,以获取有关所有成员的信息。
新算法围绕 UDP、TCP 与 TCP_NIO2 中定义的 bind_addr(),此地址的值确定如何解析其它地址,例如 loopback、site_local、global、localhost 与 default 值。例如,如果 bind_addr = :: 1,则未明确定义的所有其它地址将为 IPv6,而如果 bind_addr = 127.0.0.1,那么所有其它地址将是 IPv4 地址。
这样做的好处是可以在同一进程中使用 IPv4 和 IPv6 运行 JGroups 堆栈。
详情查看更新说明: