State

[progress record]:

Proposed time: 2022/05/26

Discussion time:

Acceptance time:

Complete time:

[issues]:

[email]:  

[release]:

[proposer]:peacewong

Motivation & Background

At present, Linkis services are mainly divided into MG: Gateway/Eureka CG: entrance/ecp/ecm/linkismanager PS: publicservice/datasource/cs. There are too many services, and it is recommended to merge the services. It is possible to merge all PS services, CG services support all mergers, and also support separate ecm services (because more ECM services are required for production deployment)

Basic concept

  • Need to support Restful service forwarding, the modification point is mainly the forwarding logic of Gateway, similar to the current publicservice service merge parameter: wds.linkis.gateway.conf.publicservice.list
  • Need to support changing RPC service remote call to local call, you can refer to: LocalMessageSender
  • It is now possible to complete the return of the local call by changing the Sender

Expect to achieve goals

  • Merge PS services into one service
  • Merge CG service into CG-Service and ECM
  • Advanced goal to merge CG services into one server
  • End the goal, remove eureka, gateway and become a single service

Implementation plan

  • 1. The gateway supports restful for service merging, and the publicservice service is now supported, and the CG service needs to be merged
  • 2. rpc supports the Sender obtained after merging as LocalMessageSender, which is modified to local call
  • 3. The installation script needs to be optimized to support starting or merging according to the service


Things to Consider & Note:

  • The installation script needs to be optimized

Changes


Modification Detail
1
Modification of maven module


2Modification of HTTP interface
3Modification of the client interface
4Modification of database table structure
5Modification of configuration item
6Modification Error code 
7Modifications for Third Party Dependencies

Compatibility, Deprecation, and Migration Plan

  • What impact (if any) will there be on existing users?
  • If we are changing behavior, how will we phase out the older behavior?
  • If we require special migration tools, describe them here.
  • When will we remove the existing behavior?