文章更新时间:2023年8月25日 14:30
组件简介
维护者 | apache组织 | 许可证类型 | Apache-2.0 |
首次发布 | 2014年10月30日 | 最新发布时间 | 2023年7月31日 |
GitHub Star | 39298 | GitHub Fork | 26130 |
依赖包 | 235 | 依赖存储库 | 3,209 |
Apache Dubbo 是一款易用、高性能的 WEB 和 RPC 框架,同时为构建企业级微服务提供服务发现、流量治理、可观测、认证鉴权等能力、工具与最佳实践。
“Dubbo3 已在阿里巴巴内部微服务集群全面落地,成功取代运行多年的 HSF 框架。”
官网:https://cn.dubbo.apache.org/zh-cn/
仓库地址:https://github.com/apache/dubbo
参考链接:
https://packages.ecosyste.ms/registries/repo1.maven.org/packages/org.apache.dubbo:dubbo
组件健康度
技术健康度 | 该组件是一个高性能、基于Java的开源RPC框架,具有内置的服务发现、流量管理、可观察性、安全特性、工具和最佳实践,用于构建企业级的微服务。它支持多种协议,如HTTP/2, gRPC, REST, Thrift, TCP等。它还提供了丰富的扩展点,如Filter, Router, Service Discovery, Configuration等。它的设计目标是低延迟、高吞吐量和高可扩展性。从技术角度来看,该组件具有较高的健康度。 |
社区健康度 | 该组件是Apache软件基金会的顶级项目,拥有活跃的开发者和用户社区。它的GitHub仓库有超过3.8万个星标,1.4万个分支,1.3万个提交和2.5万个问题。它还有一个官方网站,提供了快速入门指南和文档,以及一个维基页面,提供了新闻、常见问题和发布说明。它还有一个邮件列表,用于讨论开发和使用相关的话题。从社区角度来看,该组件具有较高的健康度。 |
更新和维护频率 | 该组件的最新版本是3.2.5,于2023年7月31日发布。该版本修复了一些bug,增加了一些特性,如支持Dubbo Mesh Proxyless模式、支持Dubbo Spring Cloud Starter等。该组件的发布周期大约为一个月左右。从更新和维护角度来看,该组件具有较高的健康度。 |
兼容性 | 该组件支持多种语言的SDK,如Java, Go, Rust, Node.js, Python等。它还支持在单一端口上发布不同协议的服务。它还支持与Istio控制平面治理系统无缝接入。它还支持基于TLS的传输链路认证和加密通信,以及基于请求身份的权限验证。从兼容性角度来看,该组件具有较高的健康度。 |
文档和支持 | 该组件提供了详细的文档,包括用户手册、开发者指南、最佳实践、常见问题等。文档分为Dubbo 2.7和Dubbo 3.0两个版本。文档内容清晰、完整、易于理解。该组件还提供了一些示例代码,演示了如何使用不同的特性和配置。此外,用户还可以通过邮件列表、GitHub问题或Stack Overflow等渠道寻求帮助和支持。从文档和支持角度来看,该组件具有较高的健康度。 |
综上所述,org.apache.dubbo:dubbo 该组件是一个优秀的RPC和微服务框架,具有较高的技术水平、社区活力、更新频率、兼容性和文档质量。
参考链接:
https://cn.dubbo.apache.org/en/
https://cn.dubbo.apache.org/en/docs/
https://github.com/apache/dubbo-samples
许可证解读
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/dubbo/blob/3.2/LICENSE
组件漏洞版本及修复方案
漏洞编号 | 漏洞标题 | 漏洞等级 | 影响版本 | 修复版本 |
MPS-2023-1779 | Apache Dubbo 存在反序列化漏洞 | 中危 | [2.7.0,2.7.22) | 2.7.22 |
MPS-2021-7664 | Apache Dubbo 泛化调用远程代码执行漏洞 | 严重 | [2.7.0,2.7.10) | 2.7.10 |
MPS-2021-0355 | Apache Dubbo 存在反序列化漏洞 | 严重 | [2.5.0,2.6.9) | 2.6.9 |
同类可替代组件
- Spring Cloud:它是一个基于Spring Boot的微服务框架,提供了服务发现、配置管理、断路器、负载均衡、路由、分布式跟踪等功能。官网:https://spring.io/projects/spring-cloud/
- gRPC:它是一个基于HTTP/2和Protocol Buffers的高性能、跨语言的RPC框架,支持双向流、认证、拦截器、负载均衡等功能。官网:https://grpc.io/
- Apache Thrift:它是一个基于二进制协议的轻量级、跨语言的RPC框架,支持多种传输层和服务层协议,如TCP, HTTP, TBinaryProtocol, TJSONProtocol等。官网:https://thrift.apache.org/
- Node.js:它是一个基于JavaScript的异步、事件驱动的平台,用于构建高性能、可扩展的网络应用和微服务。官网:https://nodejs.org/
- Kubernetes:它是一个开源的容器编排系统,用于自动化应用部署、扩缩容、管理和服务发现。官网:https://kubernetes.io/
组件SBOM
io.fabric8:kubernetes-model-autoscaling | 6.8.1 | 否 | maven |
org.apache.dubbo:dubbo-config-spring | 3.2.6-SNAPSHOT | 是 | maven |
org.springframework:spring-core | 5.3.25 | 否 | maven |
io.zipkin.brave:brave | 5.14.1 | 否 | maven |
org.junit.jupiter:junit-jupiter-api | 5.9.3 | 是 | maven |
org.mockito:mockito-core | 4.11.0 | 是 | maven |
org.springframework:spring-web | 5.3.25 | 是 | maven |
org.apache.yetus:audience-annotations | 0.5.0 | 否 | maven |
org.apache.commons:commons-lang3 | 3.12.0 | 是 | maven |
io.fabric8:kubernetes-model-coordination | 6.8.1 | 否 | maven |
org.apache.dubbo:dubbo-metadata-processor | 3.2.6-SNAPSHOT | 是 | maven |
该SBOM清单仅展示部分内容
完整SBOM清单及检测报告:
https://www.murphysec.com/console/report/1694966986718404608/1694966989734109184?allow=1