后端部分用 golang 重构
- Dominant language
- Go
- Stars
- 4.1k
- Forks
- 2.2k
- Avg merge
- 10d 12h
- Merged PRs (30d)
- 4
Description
## 背景
1. 当前的[Dubbo Admin](https://github.com/apache/dubbo-admin)已经适配了Dubbo 3.x版本,但是整体的进度和Dubbo本身存在差距
2. 当前的Dubbo Admin是基于Dubbo在18年重新开源前,老版本的控制台实现的,当时主要的工作是进行前后端分离,用[vuetify](https://vuetifyjs.com/en/)重写前端的部分,而后端代码并没有经过很好的设计。
## 重构
考虑用go语言重写后端,一方面是当前的功能也不是算太多,用go重写的成本可控。另外考虑到Dubbo Admin也需要适配云原生环境,比如透出k8s的相关信息,对接Dubbo Mesh,这些工作用go语言开发会更加便利,得到更多的社区支持。
## 规划
1. 注册中心/配置中心/元数据中心:Dubbo Admin最重要的3个数据来源,需要替换成go语言的实现。当前实现直接调用了Dubbo接口,根据协议类型来判断具体的实现:详见[这里](https://github.com/apache/dubbo-admin/blob/develop/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/config/ConfigCenter.java#L147),需要根据dubbo-go中支持的实现,来重写这一部分
2. 后端接口:目前的controller层,在第一步完成后就有了数据源,照着用go语言实现一遍
3. 登录/鉴权:当前很多的接口都需要登录才能操作,这一部分也需要搬过来
4. k8s信息透出:参考kiali的cluster api交互的部分
提交了一个新的[分支](https://github.com/apache/dubbo-admin/tree/refactor-with-go),目前还没有包含任何功能
Contributor guide
Research direction
Start by reviewing the refactor-with-go branch and the existing ConfigCenter.java implementation linked in the issue. Map the registry, configuration, metadata, controller, login/authentication, and Kubernetes-information work before proposing scope; done would require a functioning Go backend covering the listed areas, but the issue provides no tests or concrete acceptance criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, java, kubernetes
- Domain
- authentication, backend, cloud
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100