首页
/ OpenZiti 1.3.0版本发布:路由器数据模型与高可用性增强

OpenZiti 1.3.0版本发布:路由器数据模型与高可用性增强

2025-06-16 10:35:35作者:牧宁李

OpenZiti是一个开源的零信任网络解决方案,它通过软件定义边界(SDP)技术为企业提供安全的网络连接。不同于传统网络连接方式,OpenZiti实现了"默认不信任"的安全模型,所有连接都需要经过严格的身份验证和授权。最新发布的1.3.0版本带来了多项重要改进,特别是在路由器数据模型和高可用性方面的增强。

路由器数据模型正式启用

1.3.0版本中最显著的改进是默认启用了路由器数据模型功能。这项功能允许控制器将精简版的数据模型分发到各个路由器节点,使路由器能够在本地做出部分授权和认证决策,而不必每次都向控制器查询。

这种分布式决策机制带来了两个主要优势:

  1. 降低了控制器的负载,因为部分决策可以在路由器本地完成
  2. 提高了系统的响应速度,减少了因网络延迟带来的性能影响

虽然这项功能之前已经存在,但经过充分测试和验证后,现在被设为默认启用状态。对于特殊场景下需要禁用此功能的用户,可以通过控制器的配置文件进行调整:

routerDataModel:
  enabled: true  # 控制是否启用路由器数据模型相关功能
  logSize: 10000  # 缓冲的模型变更数量,用于增量更新

值得注意的是,当控制器运行在高可用性(HA)模式下时,路由器数据模型功能是强制启用的,因为它是HA功能正常运行的基础。

高可用性改进

1.3.0版本对高可用性功能进行了多项优化:

  1. 简化配置:路由器不再需要显式配置ha: enabled标志,现在路由器能够自动适应连接的是HA还是非HA控制器,大大简化了部署配置。

  2. 模式切换安全处理:当控制器从支持路由器数据模型变为不支持(或反之)时,连接的路由器会安全地关闭,确保能够以正确的模式重新启动,避免潜在的不一致问题。

  3. 健康检查增强:新增了对raft共识算法状态的检查能力。现在通过访问/health-checks/controller/raft端点,可以获取控制器的raft状态信息,包括是否启用了raft以及当前节点是否为leader。当raft已启用但查询的控制器不是leader时,会返回429状态码。

示例响应:

{
    "data": {
        "checks": [...],
        "healthy": true
    },
    "raft": {
        "isLeader": true,
        "isRaftEnabled": true
    }
}

其他重要改进

  1. OIDC登录改进:修复了使用默认端口和localhost时OIDC配置的404问题,以及处理不支持的媒体类型时的panic问题。

  2. 内存泄漏修复:解决了路由器API会话管理器的内存泄漏问题。

  3. 事件系统增强

    • 为所有事件添加了源ID标识
    • 调整了集群事件的命名空间
    • 移除了连接事件中的URI/参数信息
  4. 外部身份映射:增强了外部身份映射不匹配时的日志记录,便于问题排查。

  5. 存储层改进:支持在标识符段(第一个点之后)中使用破折号,提高了标识符的灵活性。

总结

OpenZiti 1.3.0版本通过默认启用路由器数据模型和增强高可用性功能,进一步提升了系统的性能和可靠性。这些改进使得OpenZiti更适合大规模企业部署,特别是在需要高可用性和低延迟的场景下。同时,各种bug修复和功能增强也提升了产品的稳定性和用户体验。

对于现有用户,建议评估升级到1.3.0版本,特别是那些需要高可用性功能的用户。新用户则可以直接从1.3.0版本开始,享受这些改进带来的好处。

登录后查看全文
热门项目推荐
相关项目推荐