Hi,

SGTM on my side.

JunXu Chen <chenju...@apache.org>于2022年3月29日 周二10:48写道:

> # Background
> At present, the connection between the Manager API and etcd still follows
> the habit of the etcd v2 version, creating a watch connection for each
> resource, which will generate a large number of connections.
>
> # Purpose
> Reduce connections between Manager API and etcd, to reduce the load on etcd
> services.
>
> # Proposal
> In the `Generic Store`, each resource still manages its own cache
> separately, but no longer connects directly to etcd. Added a unified method
> of listing full data and watching changes, and the obtained data is
> uniformly distributed to the Store instances of each resource.
> After optimization, the workflow of `Generic Store` initialization is as
> follows:
> 1. Create a resource prefix mapping table
> 2. Initialize each resource Store object and register itself in the
> resource prefix mapping table
> 3. Read the full amount of data, find the corresponding resource according
> to the key prefix, and distribute the data to the Store object of each
> resource
> 4. Watch the etcd prefix configured in `conf.yaml`, when obtaining the
> changed data, find the corresponding resource according to the key prefix,
> and distribute the data to the Store object of the resource.
>
> # Further action
> Reduce connections between Apache APISIX and etcd (a new proposal is
> needed)
>
> I also drew a flow chart of the comparison before and after optimization in
> the issue. Welcome to view it and discuss in the issue[1].
>
> Thanks!
>
>
> [1] https://github.com/apache/apisix-dashboard/issues/2396
>
-- 
Best regards
Chao Zhang

https://github.com/tokers

Reply via email to