Open AlbumenJ opened 3 years ago
Awesome! Looking forward to the young talents joining the community.
Hi, I have two questions regarding these issues:
@ZiyunYang
Do I need to register the Summer 2021 of Open Source Promotion Plan first and then my PRs will be considered to be merged?
Yes, you need to submit your proposal in the Summer 2021 of Open Source Promotion Plan first. All of the PRs will be considered to be merged.
Does one PR have to cover all features mentioned within one issue?
Not recommended. It would be better to submit after one feature has been implement. It will help code review and record the process of project.
可惜我已不是学生
Summer 2021 of Open Source Promotion Plan (hereinafter referred to as summer 2021) is a summer program for college students jointly organized by Institute of Software Chinese Academy of Sciences and openEuler community. It aims to encourage college students to actively participate in the development and maintenance of open source software and promote the vigorous development of excellent open source software community.
Website: https://summer.iscas.ac.cn/
Help: https://summer.iscas.ac.cn/help/en/
Project List ( English Version )
1. Hard - Dubbo 3 supports Thin SDK
Based on Dubbo 3.0 to slim Dubbo, only retain the core RPC capabilities, consider the capabilities that Service Mesh can provide natively, and strip the existing governance capabilities to enable Dubbo to access Sidecar in a lighter way, with the help of Sidecar (Envoy, Mosn) Governance capabilities.
Related issue: https://github.com/apache/dubbo/issues/7780
2. Easy - Dubbo 3 peripheral RPC protocol and serialization protocol extension implementation
Dubbo 3 needs to support a variety of protocols to facilitate users to implement different situations and need to be implemented based on dubbo-spi-extension.
Related issue: https://github.com/apache/dubbo/issues/7781
3. Easy - Dubbo 3 peripheral registration center, configuration center, metadata center expansion implementation
Dubbo 3 needs to support other registration centers, configuration centers, and metadata centers except Zookeeper and Nacos to facilitate users to implement different situations and need to be implemented based on dubbo-spi-extension.
Related issue: https://github.com/apache/dubbo/issues/7782
4. Hard - Dubbo 3 Service Flexibility
Nowadays, with the growing business scale, the need for middleware supporting millions of instances has become increasingly prominent. How to maintain the stability and performance of the framework in a super-large-scale distributed cluster has become whether the underlying middleware can support the business trend The key to the next stage. Dubbo 3 hopes to provide flexible governance capabilities, provide capacity evaluation based on the server, implement load balancing based on reverse push, ensure that the cluster will not be overwhelmed under high traffic conditions, and provide an intelligent fuse mechanism to ensure that the server can process requests in a timely and efficient manner.
Related issue: https://github.com/apache/dubbo/issues/7783
5. Easy - Add SPI extension support in Dubbo Admin login, and add permission SPI extension
Added SPI extension support in login, allowing users to extend their login methods so that users can access their login system. Existing login methods are provided as extensions by default. Increase the ability to intercept permissions, and provide SPI extension support. The default extension is provided in a non-intercepted way.
Related issue: https://github.com/apache/dubbo-admin/issues/756
6. Hard - Dubbo Admin provides service mock ability
Add the service mock capability to Admin to provide consumers with the ability to test before the provider's development is completed. Called to consumers by simulating the data returned by the provider.
Reference realization ideas/main points (if you have different ideas, you can also put forward them): • Add database support (MySQL) to save mock configuration • It is recommended to use Mybatis (plus) as the ORM and Druid as the connection pool, try to use standard SQL, and try to ensure that you can use other databases with a different driver • Admin provides the configuration function of rules, user-specified interface (full package path), method name, return type (basic data types such as String, int, long and complex types), return value (complex type users provide JSON, before returning JSON is converted to Map and returned, and PojoUtils is used in the Filter on the frame side to restore it to the type returned by the method), and the return method (asynchronous/synchronous) is configured. • Add a provider service (MockService) on the Admin side and register it in the registry. The service reads the rules and returns the corresponding data, receiving interface, method name, and arbitrary method parameters according to the rules, finds the corresponding configuration according to the interface and method name, and generates the return data according to the configuration • Add consumer Filter and switch configuration on Dubbo frame side (default off). After the switch is turned on, the request will be sent to MockService through Filter
Related issue: https://github.com/apache/dubbo-admin/issues/757
7. Easy - dubbo-api-docs Pre-research and plan writing based on Dubbo SPI reconstruction
dubbo-api-docs is currently based on Spring's annotations on scanning docs, and the scan results are cached in memory. You need to use Dubbo's SPI mechanism to intervene in the scan, and put the scan results in the metadata center. And no longer provide the docs self-use provider, Admin directly obtains data from the metadata center. It is necessary to investigate whether there is a suitable SPI in Dubbo (the priority is to investigate whether there is a suitable SPI when Dubbo scans metadata) to intervene in scanning, and how to add metadata to the metadata center. (Add attributes to existing metadata or store them separately)
Related issue: https://github.com/apache/dubbo-admin/issues/758
8. Hard - Dubbo Admin multi-environment support
At present, an instance of Dubbo Admin can only connect to one set of environments (specified registry, namespace, group), and hope that one instance can connect to multiple sets of environments. Reference: https://www.yuque.com/docs/share/9fac3ccb-c0b9-41e8-bb43-2146b31db4c8
Related issue: https://github.com/apache/dubbo-admin/issues/759
9. Medium - Dubbo Admin support for Dubbo 3 application-level service discovery
Dubbo Admin needs to be able to support Dubbo 3 application-level service discovery
Related issue: https://github.com/apache/dubbo-admin/issues/760
Project List ( Chinese Version )
1. 困难 - Dubbo 3 支持 Thin SDK
基于 Dubbo 3.0 对 Dubbo 进行瘦身,仅保留核心 RPC 能力,考虑 Service Mesh 所能原生提供的能力,剥离现有的治理能力使 Dubbo 以一个更轻量化的方式接入 Sidecar,借助 Sidecar(Envoy、Mosn)的治理能力。
相关 issue:https://github.com/apache/dubbo/issues/7780
2. 简单 - Dubbo 3 周边 RPC 协议、序列化协议拓展实现
Dubbo 3 需要支持多种多样的协议,方便用户落地不同的情况,需要基于 dubbo-spi-extension 实现。
相关 issue:https://github.com/apache/dubbo/issues/7781
3. 简单 - Dubbo 3 周边注册中心、配置中心、元数据中心拓展实现
Dubbo 3 需要支持除 Zookeeper 和 Nacos 外的其它注册中心、配置中心、元数据中心,方便用户落地不同的情况,需要基于 dubbo-spi-extension 实现。
相关 issue:https://github.com/apache/dubbo/issues/7782
4. 困难 - Dubbo 3 服务柔性能力
如今,在业务规模日益增长的情况下,支持百万级别实例中间件的需求日益凸显,如何在超大规模分布式集群中保持框架的稳定性和性能,则成为了底层中间件能否支撑业务走向下一个阶段的关键。Dubbo 3 希望提供柔性治理的能力,提供基于服务端的容量评估,基于反推实现负载均衡,保证大流量情况下不会压垮集群,提供智能熔断机制,保障服务端能及时高效处理请求。
相关 issue:https://github.com/apache/dubbo/issues/7783
5. 简单 - Dubbo Admin 登录中增加 SPI 扩展支持,并增加权限的 SPI 扩展
登录中增加SPI扩展支持,让用户可以扩展自己的登录方式,以便用户接入自己的登录体系中。 现有登录方式作为默认提供的扩展。 增加权限的拦截能力,并提供SPI扩展支持。 默认扩展以全部通过不拦截的方式提供。
相关 issue:https://github.com/apache/dubbo-admin/issues/756
6. 困难 - Dubbo Admin 提供服务 Mock 能力
在 Admin 中增加服务 Mock 能力,用于在提供者开发完成前给消费者提供测试的能力。通过模拟提供者返回的数据的方式给消费者调用。
参考实现思路/要点(如果有不同思路也可以提出来): • 增加数据库支持(MySQL)以保存 Mock 的配制 • 建议使用 Mybatis(plus)作为 ORM,Druid 作为连接池,尽量使用标准 SQL,尽量保证能换个驱动就能使用其他数据库 • Admin 提供规则的配制功能,用户指定接口(完整包路径),方法名,返回类型(String,int,long 等基础数据类型及复杂类型),返回值(复杂类型用户提供JSON,在返回前把 JSON 转为 Map 返回,在框架侧的 Filter 中利用PojoUtils 还原为方法返回的类型),返回方式 (异步/同步)等配制。 • Admin 侧增加一个提供者服务(MockService)并注册到注册中心中。该服务通过读取规则并根据规则返回对应的数据、接收接口、方法名、任意方法参数,根据接口和方法名找到对应的配制,并根据配制生成返回数据 • Dubbo 框架侧增加消费者 Filter,和开关配制(默认关闭),开关开启后通过 Filter 把请求发送到 MockService
相关 issue:https://github.com/apache/dubbo-admin/issues/757
7. 困难 - dubbo-api-docs 基于 Dubbo SPI 重构的预研,方案编写
dubbo-api-docs 目前是基于 Spring 扫描 docs 相关注解的,并且扫描结果缓存在内存中。需要改为以 Dubbo 的 SPI 机制介入扫描,并把扫描结果放到元数据中心. 并且不再提供 docs 自用的 provider, Admin 直接从元数据中心获取数据。需要调研 Dubbo 中有没有合适的SPI (优先调研 Dubbo 扫描元数据的时机有没有合适的SPI )以介入扫描,以及如何向元数据中心中增加元数据。(在现有元数据中增加属性,还是单独存放)
相关 issue:https://github.com/apache/dubbo-admin/issues/758
8. 困难 - Dubbo Admin 多环境支持
目前一个 Dubbo Admin 实例只能连接一套环境(指定的注册中心,namespace,group),希望一个实例能连接多套环境 。 参考:https://www.yuque.com/docs/share/9fac3ccb-c0b9-41e8-bb43-2146b31db4c8
相关 issue:https://github.com/apache/dubbo-admin/issues/759
9. 中等 - Dubbo Admin 对 Dubbo 3应用级服务发现的支持
Dubbo Admin 需要能支持 Dubbo 3 的应用级服务发现
相关 issue:https://github.com/apache/dubbo-admin/issues/760