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