文章更新时间:2023年8月25日 15:30
组件简介
维护者 | apache组织 | 许可证类型 | Apache-2.0 |
首次发布 | 2010年11月25日 | 最新发布时间 | 2023年8月3日 |
GitHub Star | 11497 | GitHub Fork | 7098 |
依赖包 | 1,812 | 依赖存储库 | 34,172 |
ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
官网:https://packages.ecosyste.ms/registries/repo1.maven.org/packages/org.apache.zookeeper:zookeeper
仓库地址:https://github.com/apache/zookeeper
参考链接:
https://packages.ecosyste.ms/registries/repo1.maven.org/packages/org.apache.zookeeper:zookeeper
组件健康度
技术健康度 | 该组件使用 Java 语言开发,具有良好的性能和可扩展性。它提供了一系列的 API 和工具,用于管理配置信息、命名、分布式同步和分组服务。它可以应用于各种分布式应用场景,如负载均衡、服务发现、选举、锁等。它还支持 SSL/TLS 加密通信,以及动态加载客户端信任/密钥库。 |
社区健康度 | 该组件是 Apache 软件基金会的一个志愿者项目,拥有活跃的开发者和用户社区。它的邮件列表、IRC 频道、版本控制和问题跟踪系统都可以在其官方网站上找到。它还有一个 Wiki 页面,提供了更多的信息和资源。 |
更新和维护频率 | 该组件目前有两个发布分支:稳定版和当前版。稳定版是 3.8.x,当前版是 3.9.x。每当有一个新的次版本发布时,稳定版就会很快被淘汰,并在大约半年后宣布为终止支持。在半年的宽限期内,只有安全和关键修复会被发布。3.9.x 是最新的版本,于 2023 年 8 月 3 日发布。它引入了许多新特性,如管理员服务器 API、Netty-TcNative OpenSSL 支持、Zktreeutil 的 SSL 支持等。 |
兼容性 | 该组件遵循向后兼容的原则,即 ZooKeeper 3.5.x 及以后的客户端可以与 3.9.x 的服务器完全兼容。从 3.7.x 和 3.8.x 升级到 3.9.x 可以按照通常的方式执行,不需要特别的额外升级步骤。ZooKeeper 3.9.x 的客户端也可以与 3.5.x、3.6.x、3.7.x 和 3.8.x 的服务器兼容,只要不使用这些版本中不存在的新 API。 |
文档和支持 | 该组件提供了详细的文档,包括安装指南、编程指南、API 参考等。文档可以根据不同的版本进行查阅。此外,该组件还提供了一些示例代码和教程,帮助用户快速入门和掌握其用法。 |
综上所述,org.apache.zookeeper:zookeeper 是一个健康度较高的组件,具有成熟的技术、活跃的社区、频繁的更新和维护、良好的兼容性和丰富的文档和支持。
参考链接:
https://zookeeper.apache.org/releases.html
https://zookeeper.apache.org/documentation.html
许可证解读
Apache License 2.0 是一种开源软件许可证,广泛用于授权开源项目和代码。Apache License 2.0 允许用户自由地使用、修改和分发受许可的软件,而无需支付版权费用或专利费用。它鼓励开发者共享他们的代码,并保护用户的权利。以下是该许可证的一些重要特点:
- 代码使用权:用户可以自由地使用、复制、修改、合并、发布、分发和销售受许可软件。
- 版权声明:用户必须在所有源代码副本中保留原始的版权声明、许可证声明和免责声明。
- 修改代码:如果用户对代码进行了修改,需要清楚标明哪些部分发生了变化,并不能暗示原作者同意这些修改。
- 商标使用:Apache License 2.0 并未授予使用原软件的任何商标或名称的权利。
- 专利许可:该许可证授予了在使用、修改或分发受许可软件时相关专利的非独占许可。这意味着如果用户授权其他人使用该软件,相关专利许可也会传递给接收方。
- 再许可:用户可以将受 Apache License 2.0 许可的代码作为一部分整合到其它开源项目中,并使用不同的许可证授权整个项目。但是,需要在代码中显式地说明使用了 Apache License 2.0 许可的部分。
需要注意的是,Apache License 2.0 并不保证软件没有缺陷或不稳定性,使用该软件的风险由用户自行承担。
许可证原文链接:https://github.com/apache/zookeeper/blob/master/LICENSE.txt
组件漏洞版本及修复方案
漏洞编号 | 漏洞标题 | 漏洞等级 | 影响版本 | 修复版本 |
MPS-2019-5668 | Apache Zookeeper 授权问题漏洞 | 中危 | (-∞,3.4.14) | 3.4.14 |
MPS-2018-6313 | pache Zookeeper 访问控制错误漏洞 | 高危 | (-∞,3.4.10) | 3.4.10 |
MPS-2017-11297 | Apache Zookeeper 安全漏洞 | 高危 | [3.4.0,3.4.10) | 3.4.10 |
同类可替代组件
- Etcd:Etcd 是一个分布式的键值存储系统,基于 Raft 算法实现了强一致性和容错性。Etcd 提供了 HTTP 和 gRPC 两种接口,支持多种编程语言。Etcd 可以用于服务发现、分布式锁、领导者选举等场景。官网:https://etcd.io/
- Consul:Consul 是一个分布式的服务网格解决方案,提供了服务发现、配置管理、健康检查、密钥/值存储等功能。Consul 基于 Gossip 协议和 Raft 算法实现了高可用性和一致性。Consul 支持多数据中心,提供了 HTTP 和 DNS 两种接口。官网:https://www.consul.io/
- Eureka:Eureka 是一个基于 REST 的服务注册和发现组件,主要用于微服务架构中。Eureka 采用了客户端-服务器的模式,客户端定期向服务器发送心跳,服务器维护一个服务实例的注册表。Eureka 保证了可用性优先,允许在网络分区或故障时继续提供服务。官网:https://github.com/Netflix/eureka
组件SBOM
android-ndk | r23b | 否 | |
ch.qos.logback:logback-core | 1.2.10 | 是 | maven |
org.apache.zookeeper:zookeeper | 3.10.0-SNAPSHOT | 是 | maven |
junit:junit | 否 | maven | |
org.apache.zookeeper:zookeeper-client | 3.10.0-SNAPSHOT | 是 | maven |
org.eclipse.jetty:jetty-security | 9.4.51.v20230217 | 否 | maven |
com.sun.grizzly:grizzly-portunif | 1.9.8 | 否 | maven |
com.google.guava:guava | 18.0 | 是 | maven |
io.netty:netty-transport-native-unix-common | 4.1.94.Final | 否 | maven |
org.apache.zookeeper:zookeeper-it | 3.10.0-SNAPSHOT | 是 | maven |
io.netty:netty-resolver | 4.1.94.Final | 否 | maven |
该SBOM清单仅展示部分内容
完整SBOM清单及检测报告:
https://www.murphysec.com/console/report/1694968394586419200/1694968400806572032?allow=1