You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shenyu.apache.org by pengfei tian <ti...@gmail.com> on 2023/04/21 05:35:32 UTC
[new feature] Shenyu-Client registration information collection
Dear dev
-
-
I found some designs in the project that could have been better,so I
did a design for this. I hope you can help me to check this design and
give advice and suggestions .
-
At the same time, I also hope that you will actively participate in
the implementation of this design. The following part is this design(
#4560 <https://github.com/apache/shenyu/issues/4560>). By the way,
I've already implemented a simple
-
-
demo
,please check here <https://github.com/tian-pengfei/shenyu/pull/1>.
Description
AbstractContextRefreshedEventListener is too coupled, which makes it
difficult to scale. Therefore we need to redesign the collection of client
registration information .
Various types of API (eg:Api-Doc,Api-Meta)collections are coupled together
in AbstractContextRefreshedEventListener,so we mainly need to refactor the
design of API-related information collection.
Aims
- It supports to register api without annotations
- You can customize the registration mode with it
- The hierarchies will changes from inheritance to composition.
- API information generation rules will be customizable,which mean it
can independent of annotations.
- You can custom API matching rules to decide what kind of API meets the
requirements.
- Spring-Boot Client will support Automatic configuration.
- It will be a non-invasive design,which don't influence the old design.
demo: tian-pengfei#1 <https://github.com/tian-pengfei/shenyu/pull/1>
Design
[image: design]
<https://user-images.githubusercontent.com/42602026/233129716-90791058-9dac-44f3-8b1e-a0283fe2e3cc.png>
Task
- initializes base design tian-pengfei <https://github.com/tian-pengfei>
- initializes spring-boot auto config tian-pengfei
<https://github.com/tian-pengfei>
- support spring-mvc (boot and no boot) tian-pengfei
<https://github.com/tian-pengfei>
- support spring-cloud
- support spring-dubbo
- support eureka
- support tars
- support sofa
- support motan
- support grpc
- support brpc
Best wishes!
Tian Pengfei
Apache ShenYu