jizhuozhi opened a new issue, #12464:
URL: https://github.com/apache/apisix/issues/12464

   ### Description
   
   As a user, I hope that for the same service name, different instances can be 
filtered in different routes, upstreams, and services.
   
   ## Q. Why do we need metadata filtering?
   
   A. For the same service, we will have different metadata for management. For 
example, when the recommendation system model changes, the model version will 
be modified and traffic switching and ab experiments will be performed through 
client coloring.
   
   ## Q. Why not use different service names?
   
   A. We will create multiple environments based on the same service template. 
They only have some different metadata, such as env or lane, and model version. 
As the metadata dimension increases, the service names we need to locate 
specific coordinates will increase nonlinearly.
   
   ## Q. What upstream types need to be supported?
   
   A. Including Consul, Eureka, Nacos and other registration center types, as 
well as the registration center selection that may be added in the future or 
within the enterprise can directly inherit this capability
   
   ## Q. Any other context?
   
   A1. I'm sorry I broke the process. I have implemented filtering in the 
upstream dimension internally and submitted PR 
https://github.com/apache/apisix/pull/12448. During the communication process, 
I conservatively changed to only support Consul's implementation, but following 
the DRY principle, I think it may be suitable to put it in the upstream instead 
of implementing it once for each discovery.
   
   A2. Currently, someone in Nacos is also implementing the same function 
https://github.com/apache/apisix/issues/12392 
https://github.com/apache/apisix/pull/12445, but only supports single value 
matching. However, we hope to support multi-value matching. For example, for 
env, we hope to support prod, canary but not uat (User Acceptance Testing), so 
that when we have multiple metadata that need to be combined, we can avoid the 
expansion of the routing table.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@apisix.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to