AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
篇头
最近写文章,反复多次折腾AOSP代码,因通过网络repo sync aosp代码,能一次顺利下载的概率很低,以前就经常遇到,但从未总结,导致自己也要回头检索方法,所以觉得可以总结一下,涉及下载最新、各分支AOSP代码的方法,以及如何处理所遇到的同步错误及其解决方法,现分享给大家~
一、下载源码包及repo
- 包含 aosp-latest.tar 和 repo程序
- 下载TAG包,可以节约很多时间
(1)下载初始化包,约 60GB 数据,建议复制地址,直接使用迅雷下载
szhou@bc-R01:~/works$curl -OC - https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar (2)解压
szhou@bc-R01:~/works$ mkdir aosp
szhou@bc-R01:~/works$ tar -xvf aosp-latest.tar -C aosp/(3)下载repo
szhou@bc-R01:~/works/aosp$ mkdir bin
szhou@bc-R01:~/works/aosp$ curl https://storage.googleapis.com/git-repo-downloads/repo > bin/reposzhou@bc-R01:~/works/aosp$ curl https://storage.googleapis.com/git-repo-downloads/repo > bin/repo % Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed
100 48143 100 48143 0 0 48336 0 --:--:-- --:--:-- --:--:-- 48287(4)部署repo
szhou@bc-R01:~/works/aosp$ chmod a+x bin/repo
szhou@bc-R01:~/works/aosp$ sudo cp bin/repo /usr/bin/
[sudo] password for szhou:
szhou@bc-R01:~/works/aosp$
二、代码更新
2.1 目录情况
- 解压后,在aosp目录下,只有.repo目录,还需要同步代码和检出代码
szhou@bc-R01:~/works/aosp/aosp$ ls -al
total 12
drwxr-xr-x 3 szhou szhou 4096 10月 1 00:00 .
drwxrwxr-x 4 szhou szhou 4096 12月 24 00:39 ..
drwxr-xr-x 7 szhou szhou 4096 10月 1 00:45 .repo
szhou@bc-R01:~/works/aosp/aosp$
2.2 更新.repo/repo 程序
- 第一次更新AOSP源码,记得执行此步骤,可以减少后续repo sync错误
szhou@bc-R01:~/works/aosp/aosp$ ls -al
total 12
drwxr-xr-x 3 szhou szhou 4096 10月 1 00:00 .
drwxrwxr-x 4 szhou szhou 4096 12月 24 00:39 ..
drwxr-xr-x 7 szhou szhou 4096 10月 1 00:45 .repo
szhou@bc-R01:~/works/aosp/aosp$ cd .repo/repo/
szhou@bc-R01:~/works/aosp/aosp/.repo/repo$ git pull
remote: Enumerating objects: 263, done.
remote: Counting objects: 100% (191/191), done.
remote: Compressing objects: 100% (138/138), done.
remote: Total 263 (delta 152), reused 55 (delta 53), pack-reused 72
Receiving objects: 100% (263/263), 264.03 KiB | 11.00 MiB/s, done.
Resolving deltas: 100% (158/158), completed with 12 local objects.
From https://mirrors.tuna.tsinghua.edu.cn/git/git-repo1e9f7b9..4c80921 stable -> origin/stable83c66ec..b1d1ece main -> origin/main* [new tag] v2.40 -> v2.40* [new tag] v2.38 -> v2.38* [new tag] v2.39 -> v2.39
Updating 1e9f7b9..4c80921
Fast-forward.github/workflows/close-pull-request.yml | 22 +++.github/workflows/test-ci.yml | 5 +-color.py | 4 +-
…… 略……tests/test_wrapper.py | 2 +-tox.ini | 7 +-60 files changed, 3043 insertions(+), 2389 deletions(-)create mode 100644 .github/workflows/close-pull-request.ymlcreate mode 100644 git_trace2_event_log_base.py
szhou@bc-R01:~/works/aosp/aosp/.repo/repo$
操作如下图所示

2.3 查看可用分支
- 可见13的最新版本为:remotes/origin/android-13.0.0_r82, 即r82版本
- 通过修改grep后的过滤条件,也可以查看其他版本情况
szhou@bc-R01:~/works/aosp/aosp/.repo/manifests.git$ git branch -av | grep android-13remotes/origin/android-13.0.0_r1 0f42cde46 Manifest for Android 13.0.0 Release 1 (TP1A.220624.014)remotes/origin/android-13.0.0_r10 e64b26003 Manifest for Android 13.0.0 Release 10
…… 略 ……remotes/origin/android-13.0.0_r80 4ca496b8e Manifest for Android 13.0.0 Release 80remotes/origin/android-13.0.0_r81 259db423b Manifest for Android 13.0.0 Release 81remotes/origin/android-13.0.0_r82 ed487956f Manifest for Android 13.0.0 Release 82remotes/origin/android-13.0.0_r9 0bac787fd Manifest for Android 13.0.0 Release 9
szhou@bc-R01:~/works/aosp/aosp/.repo/manifests.git$
操作如下图所示

2.4 配置Python
- 当前AOSP代码需要Python 3.6以上版本,才可正常使用
2.4.1 Python版本导致的repo sync错误
szhou@bc-R01:~/works/aosp/aosp/.repo/manifests.git$ cd ../..
szhou@bc-R01:~/works/aosp/aosp$ repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-13.0.0_r82File "/usr/bin/repo", line 51def print(self, *args, **kwargs):^
SyntaxError: invalid syntax
szhou@bc-R01:~/works/aosp/aosp$ python --version
Python 2.7.18
szhou@bc-R01:~/works/aosp/aosp$
2.4.2 查看可用的Python版本
- 常用Python,至少需安装2.7和3.6以上,两个版本
sudo apt-get install python2.7
(1)查看已安装的Python有哪些版本
szhou@bc-R01:~/works/aosp/aosp$ ls -l /usr/bin/python*
lrwxrwxrwx 1 root root 24 12月 10 20:34 /usr/bin/python -> /etc/alternatives/python
lrwxrwxrwx 1 root root 9 3月 13 2020 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3662032 7月 1 2022 /usr/bin/python2.7
lrwxrwxrwx 1 root root 33 7月 1 2022 /usr/bin/python2.7-config -> x86_64-linux-gnu-python2.7-config
lrwxrwxrwx 1 root root 16 3月 13 2020 /usr/bin/python2-config -> python2.7-config
lrwxrwxrwx 1 root root 9 12月 10 08:57 /usr/bin/python3 -> python3.8
-rwxr-xr-x 1 root root 5465880 11月 22 18:22 /usr/bin/python3.8
lrwxrwxrwx 1 root root 33 11月 22 18:22 /usr/bin/python3.8-config -> x86_64-linux-gnu-python3.8-config
lrwxrwxrwx 1 root root 16 3月 13 2020 /usr/bin/python3-config -> python3.8-config
-rwxr-xr-x 1 root root 384 1月 25 2023 /usr/bin/python3-futurize
-rwxr-xr-x 1 root root 388 1月 25 2023 /usr/bin/python3-pasteurize
lrwxrwxrwx 1 root root 14 4月 15 2020 /usr/bin/python-config -> python2-config
szhou@bc-R01:~/works/aosp/aosp$
2.4.3 配置多Python版本支持
- 本人系统中已安装2.7和3.8两个版本
(1)配置多版本支持
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2(2)执行 --config python后,选择Python3.8, 编号为2
szhou@bc-R01:~/works/aosp/aosp$ sudo update-alternatives --config python
[sudo] password for szhou:
There are 2 choices for the alternative python (providing /usr/bin/python).Selection Path Priority Status
------------------------------------------------------------0 /usr/bin/python3.8 2 auto mode
* 1 /usr/bin/python2.7 1 manual mode2 /usr/bin/python3.8 2 manual modePress <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/python3.8 to provide /usr/bin/python (python) in manual mode
szhou@bc-R01:~/works/aosp/aosp$ (3)查看版本设置情况
szhou@bc-R01:~/works/aosp/aosp$ python --version
Python 3.8.10
szhou@bc-R01:~/works/aosp/aosp$
2.5 repo init 初始化分支
- 为了节约repo sync时间,我们可以选定只同步目标分支:android-13.0.0_r82
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-13.0.0_r82

2.6 repo sync
- 加上 -c 参数,仅同步当前android-13.0.0_r82分支,节约下载时间
szhou@bc-R01:~/works/aosp/aosp$ repo sync -c
三、解决repo sync 错误
3.1 Python 版本引起的错误
- 解决办法: 建议切换到3.8及以上版本
- 多版本支持,请查看本文第2.4.1节
szhou@bc-R01:~/works/aosp/aosp/.repo/manifests.git$ cd ../..
szhou@bc-R01:~/works/aosp/aosp$ repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-13.0.0_r82File "/usr/bin/repo", line 51def print(self, *args, **kwargs):^
SyntaxError: invalid syntax
szhou@bc-R01:~/works/aosp/aosp$ python --version
Python 2.7.18
szhou@bc-R01:~/works/aosp/aosp$
3.2 repo脚本偏旧导致的错误
- 解决办法:切换到aosp/.repo/repo目录下,执行git pull
szhou@oa-R630:~/works/aosp$ /home/szhou/Downloads/aosp/bin/repo sync -c
Fetching: 100% (1146/1146), done in 11m43.689s
info: A new version of repo is available
repo: Updating release signing keys to keyset ver 2.3
warning: repo is not tracking a remote branch, so it will not receive updates
================================================================================
Repo command failed: RepoUnhandledExceptionError
szhou@oa-R630:~/works/aosp$
szhou@oa-R630:~/works/aosp/.repo/repo$ git pull
3.3 repo sync 数据错误
3.3.1 类型1:error: in sync -lc: revision refs xxx
- 解决办法:
- (1)找到事故目标: .repo/projects/device 或 .repo/projects/device /google/raviole-kernel
- (2)删除 rm -rf .repo/projects/device
- (3)更准确点:rm -rf .repo/projects/device /google/raviole-kernel
- (4)继续repo sync -c 同步代码
szhou@oa-R630:~/works/aosp$ /home/szhou/Downloads/aosp/bin/repo sync -c
error: Cannot checkout device/google/raviole-kernel: ManifestInvalidRevisionError: revision refs/tags/android-13.0.0_r82 in device/google/raviole-kernel not found
error: in `sync -c`: revision refs/tags/android-13.0.0_r82 in device/google/raviole-kernel not found
szhou@oa-R630:~/works/aosp$ ls -al
total 24
drwxr-xr-x 6 szhou szhou 4096 12月 20 11:11 .
drwxrwxr-x 5 szhou szhou 4096 12月 20 10:53 ..
drwxrwxr-x 36 szhou szhou 4096 12月 20 11:11 art
drwxrwxr-x 4 szhou szhou 4096 12月 20 11:11 device
drwxrwxr-x 3 szhou szhou 4096 12月 20 11:11 external
drwxr-xr-x 7 szhou szhou 4096 12月 20 11:10 .repo
szhou@oa-R630:~/works/aosp$ cd .repo/
manifests/ manifests.git/ project-objects/ projects/ repo/
szhou@oa-R630:~/works/aosp$ cd .repo/manifests.git/
branches/ hooks/ info/ logs/ objects/ refs/
szhou@oa-R630:~/works/aosp$ cd .repo/
manifests/ manifests.git/ project-objects/ projects/ repo/
szhou@oa-R630:~/works/aosp$ cd .repo/manifests
manifests/ manifests.git/
szhou@oa-R630:~/works/aosp$ cd .repo/
manifests/ manifests.git/ project-objects/ projects/ repo/
szhou@oa-R630:~/works/aosp$ cd .repo/projects/
art.git/ build/ developers/ external/ kernel/ packages/ prebuilts/ test/
bionic.git/ cts.git/ development.git/ frameworks/ libcore.git/ pdk.git/ sdk.git/ toolchain/
bootable/ dalvik.git/ device/ hardware/ libnativehelper.git/ platform_testing.git/ system/ tools/
szhou@oa-R630:~/works/aosp$ cd .repo/projects/device
szhou@oa-R630:~/works/aosp/.repo/projects/device$ cd -
/home/szhou/works/aosp
szhou@oa-R630:~/works/aosp$ rm -rf .repo/projects/device
szhou@oa-R630:~/works/aosp$ /home/szhou/Downloads/aosp/bin/repo sync -c
3.3.1 类型2:Unable to fully sync the tree
- 如下,虽然同步完成了,但提示了一些错误
- 解决办法:
- (1)锁定Failing repos目标
- (2)逐个删除,例如 rm -rf device/generic/trusty device/generic/uml art ……
- (3)继续执行 repo sync -c, 直至无错误100%完成同步
Checking out: 100% (1145/1145), done in 10m12.341s
error: Unable to fully sync the tree
error: Checking out local projects failed.
Failing repos:
device/generic/trusty
device/generic/uml
device/generic/vulkan-cereal
art
device/google/pantah-sepolicy
device/google/raviole
Try re-running with "-j1 --fail-fast" to exit at the first error.
================================================================================
Repo command failed due to the following `SyncError` errors:
device/generic/trusty checkout 05e24c85c2a542498ccf2983d898fcf0e6f9edd2
device/generic/uml checkout 60bc18c3a72bbed9640edaba4422fec18f36d6e9
device/generic/vulkan-cereal checkout 4b79dc90f067220adcc37bc24dae8f211ebe2d17
platform/art checkout b4ac1db327a419fb87e83c8b6f9825bc5fc126c3
device/google/pantah-sepolicy checkout 28219f7c6376cd1a810517d770029439dde653d5
+1 additional errors...
szhou@oa-R630:~/works/aosp$
四、代码同步成功
- 同步成功后,画面如下所示

相关文章:
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
篇头 最近写文章,反复多次折腾AOSP代码,因通过网络repo sync aosp代码,能一次顺利下载的概率很低,以前就经常遇到,但从未总结,导致自己也要回头检索方法,所以觉得可以总结一下,涉及…...
TCP:IP原理
TCP/IP 原理 TCP/IP 协议不是 TCP 和 IP 这两个协议的合称,而是指因特网整个 TCP/IP 协议族。从协议分层模型方面来讲,TCP/IP 由四个层次组成:网络接口层、网络层、传输层、应用层。 网络访问层(Network Access Layer) 网络访问层(Network …...
Java 中 Lambda 表达式的使用
目录 一、Lambda 表达式的概念 二、Lambda 表达式的语法格式 三、Lambda 表达式的案例使用 1、使用 Lambda 来实现启动线程 2、使用 Lambda 表达式实现集合的排序 3、使用 Lambda 表达式实现文件夹下的文件查找 一、Lambda 表达式的概念 Lambda 表达式是特殊的匿名内部类…...
【IO】IO模型与零拷贝
前言: 正在运行的程序其实就是系统中的一个进程,操作系统会为每一个进程分配内存空间,而内存空间分为两部分,一部分是用户空间,这是用户进程访问的内存区域;另一部分是内核空间,是操作系统内核访…...
鸿蒙 - arkTs:状态管理
状态 State: 在声明式UI中,以状态驱动视图更新 状态(State):指驱动视图更新的数据(被装饰器标记的变量)视图(View):基于UI描述渲染得到的用户界面 使用示例…...
YOLOv5-Lite 树莓派4B 15帧教程
【前言】 由于v5Lite仓库遗漏了不少历史问题,最大的问题是毕业后卷起来了,找不到时间更新。 上面是这篇博客的背景,那么先说下结论,使用 v5lite-e 模型,在 树莓派4B(4G内存) 上,有三…...
2014年第三届数学建模国际赛小美赛A题吹口哨解题全过程文档及程序
2014年第三届数学建模国际赛小美赛 A题 吹口哨 原题再现: 哨子是一种小装置,当空气被迫通过开口时会发出声音。哨声的巨大而引人注目,使其对警察和体育裁判来说至关重要。当救生员、迷路的露营者或犯罪受害者使用它们时,它们可以…...
设计模式-注册模式
设计模式专栏 模式介绍模式特点应用场景注册模式和单例模式的区别代码示例Java实现注册模式Python实现注册模式 注册模式在spring中的应用 模式介绍 注册模式是一种设计模式,也称为注册树或注册器模式。这种模式将类的实例化和创建分离开来,避免在应用程…...
css 美化滚动条样式
ChatgGPT4.0国内站点: 海鲸AI-支持GPT(3.5/4.0),文件分析,AI绘图 在CSS中,你可以使用伪元素::-webkit-scrollbar以及相关的伪元素来为Webkit浏览器(如Chrome和Safari)自定义滚动条的样式。以下是一些基本的CSS规则&am…...
视频压缩不影响画质简单方法,一分钟搞定!
很多朋友在处理视频的时候都会遇到视频过大的问题,想要压缩视频的同时不影响画质,简单的方法有两种。一种是用专业的压缩软件,在压缩的时候设置一个合适的压缩比例,压缩大小的同时保持清晰度,也能提高压缩率࿰…...
Zookeeper的使用场景
统一命名服务 利用ZooKeeper节点的树形分层结构和子节点的顺序维护能力,来为分布式系统中的资源命名。 例:分布式节点命名 分布式消息队列 1.在Zookeeper中创建一个持久节点,用作队列的根节点。队列元素的节点放在这个根节点下。 2.入队:…...
Java 面试题集锦记录
Java 面试题集锦记录 一1. SpringBoot、SpringCloud区别2. SpringCloud怎么保证服务间通信?3. Spring怎么保持高可用性、稳定性?4. 负载均衡5. [Rabbitmq](https://blog.csdn.net/qq_40985985/article/details/128013229) 怎么避免重复消费,[…...
【自然语言处理】第2部分:识别文本中的个人身份信息
自我介绍 做一个简单介绍,酒架年近48 ,有20多年IT工作经历,目前在一家500强做企业架构.因为工作需要,另外也因为兴趣涉猎比较广,为了自己学习建立了三个博客,分别是【全球IT瞭望】,【…...
C#中的.NET与.NET Framework区别
C#是一种编程语言,而.NET是一个开发平台。在.NET生态系统中,有两个相关但不同的概念:.NET和.NET Framework。 .NET Framework 发布时间: .NET Framework是最早引入的,它于2002年首次发布。它是一个用于构建Windows应…...
详解Keras3.0 Layer API: LSTM layer
LSTM layer 用于实现长短时记忆网络,它的主要作用是对序列数据进行建模和预测。 遗忘门(Forget Gate):根据当前输入和上一个时间步的隐藏状态,计算遗忘门的值。遗忘门的作用是控制哪些信息应该被遗忘,哪些…...
Vue和React的运行时,校验引入包的上下文差异
背景 系统使用 webpack 5 模块联邦实现微前端,有关如何实现跨应用的代码共享,可参考 如何优雅的实现跨应用的代码共享 里的第三大点。 总之,这里是其他应用使用了某个应用共享出来的reg文件,引入方式为: import REG …...
C语言中函数调用和嵌套
函数是C语言的基本组成元素 函数调用 根据函数在程序中出现的位置有下列三种函数调用方式: 将函数作为表达式调用 将函数作为表达式调用时,函数的返回值参与表达式的运算,此时要求函数必须有返回值 int retmax(100,150); 将函数作为语句…...
JVM基础篇---02
为什么需要用户自定义类加载器: 扩展类加载器的功能: Java的默认类加载器主要有三个,分别是引导类加载器、扩展类加载器和应用程序类加载器。其中,引导类加载器和扩展类加载器是由JVM实现的,用户无法修改其行为。而应用…...
HTML网站基础
一、前端开发基础 前端一共三门语言——HTML、CSS、JS(Java Script) HTML用于静态网页框架,CSS用于修饰,JS构成动态网页 1、HTML 对于中文网页需要使用 <meta charset"utf-8"> 声明编码,否则会出现…...
最优化考试之惩罚函数外点法
最优化考试之惩罚函数外点法 一、外点法1.问题条件2.解题过程 一、外点法 1.问题条件 目标函数 f ( x ) f(x) f(x)约束函数 g ( x ) g(x) g(x) 2.解题过程 定义罚函数 F ( x ) f ( x ) t ∗ m i n ( 0 , g ( x ) 2 ) F(x)f(x)t*min(0,g(x)^2) F(x)f(x)t∗min(0,g(x)2)对罚…...
外部系统调用SAP数据?用ABAP RFC函数搭个“桥梁”其实很简单(含Function Group创建避坑)
跨系统数据整合:ABAP RFC函数的设计哲学与实战指南 当企业数字化转型进入深水区,业务系统间的数据孤岛问题日益凸显。某零售企业的供应链总监最近就面临这样的挑战:"我们的电商平台需要实时获取SAP中的库存数据,但每次手工导…...
【物联网专业】案例9_2:控制数码管(定时器中断)
文章目录0 文章介绍1 仿真图2 效果图3 不完整代码4 思考题0 文章介绍 对应定时器/计数器案例目标的实现 用计数器中断0(P3^4)控制数码管段选 P1^6)控制数码位选 1 仿真图 2 效果图 3 不完整代码 复制该代码,其中有7个补充点&#…...
重载大件物料输送选滚筒线还是倍速链?
在自动化输送行业摸爬滚打十几年,见过太多工厂因为选错输送线栽跟头——有厂家跟风选倍速链输送重型模具,运行不到一个月就出现链条磨损、滚筒卡死,停产检修花了几万块;也有工厂明明是大件重载输送,却选了轻型滚筒线&a…...
OpenAnolis峰会技术干货:从内核优化到云原生实战与开源参与
1. 项目概述:一场不容错过的技术盛宴如果你是一名长期耕耘在操作系统、云计算或基础软件领域的开发者或技术决策者,那么“2022全球开源峰会OpenAnolis分论坛”这个标题,对你而言绝不仅仅是一场普通的线上或线下会议通知。它更像是一份来自技术…...
告别复制粘贴:如何在 Cursor / 各种 IDE 中丝滑接入本地 AI 模型?
引言:AI 编程时代的囚徒困境 2026 年,AI 编程助手已经像 Git 一样成为每个开发者的标配。Cursor 的订阅量持续暴涨,GitHub Copilot 的免费版已经吸引了上千万用户,JetBrains 全线 IDE 都深度集成了 AI Agent。但在这个表面繁荣的生态之下,每一位开发者都在不知不觉中交出…...
ChatGPT对技术从业者的影响:机遇与挑战
在人工智能技术飞速发展的当下,ChatGPT这类大语言模型的横空出世,无疑在科技领域投下了一颗重磅炸弹。对于软件测试从业者而言,这既是一场前所未有的机遇,也是一次严峻的挑战。它不仅重塑了测试工作的模式与效率,更对从…...
从‘盲猜’到‘先知’:深度解读神经RRT*如何让采样规划拥有‘大局观’
神经RRT*:当路径规划算法学会"思考"的范式革命 在自动驾驶汽车寻找最短路径、无人机规划避障航线的场景中,传统RRT算法就像一位盲人摸象的探险者——它通过随机撒点的方式探索环境,虽然最终能找到出路,却需要耗费大量时…...
喜马拉雅音频下载终极指南:免费解锁付费内容的桌面神器
喜马拉雅音频下载终极指南:免费解锁付费内容的桌面神器 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 你是否曾因网络…...
【独家首发】DeepSeek官方未公开的DRY检查白皮书(v2.3.1内测版):覆盖LoRA适配器、MoE路由层、Tokenizer预处理3大高危模块
更多请点击: https://codechina.net 第一章:DeepSeek DRY原则检查的演进脉络与核心定义 DRY(Don’t Repeat Yourself)作为软件工程基石性原则,在DeepSeek大模型推理与代码生成场景中已从静态语法检查逐步演化为语义感…...
5分钟快速上手Kafka-UI:开源Kafka集群管理工具完整指南
5分钟快速上手Kafka-UI:开源Kafka集群管理工具完整指南 【免费下载链接】kafka-ui Open-Source Web UI for managing Apache Kafka clusters 项目地址: https://gitcode.com/gh_mirrors/kaf/kafka-ui Apache Kafka作为现代数据架构的核心组件,其集…...
