How to arrange the priority of services in RSA
This issue is used to discuss the following issues: If there are multiple remote service instances and local service instances that match the requirements, how to arrange these service instances so that users can select the best service instance.
Currently, I plan to solve this problem based on the following two points:
-
If there are multiple
Remote Service Admin Serviceinstances, how to facilitate users to select the best remote service?If there are multiple
Remote Service Admin Serviceinstances in the same framework instance, thetopology managerselects the bestRemote Service Admin Servicefor importing services based on theService Ranking Order, the same service (with the sameendpoint.service.idandendpoint.framework.uuidproperty values) is only imported by the bestRemote Service Admin Service. -
If there are local service instances and remote service instances that match the requirements at the same time in the same framework instance, how to facilitate users to prefer to use local services or remote services?
To solve this problem, I plan to add a
conanoptionremote_service_ranking_weightto specify the priority weight of remote services. When importing services, thetopology managersets the 'service.ranking' property of the remote service toremote service ranking weight + service.ranking. Ifremote service ranking weightis a negative number, the priority of local services is higher, otherwise the priority of remote services is higher.
Hi,
For 1. I agree with the approach; Use the RSA service ranking.
For 2. I would prefer a small adjustment: Instead of a conan option, use a config property based on the RSA name. Something like CELIX_RSA_MYRSA_IMPORT_SERVICE_RANKING_OFFSET and use the (negative or positive) value to adjust the provided export service ranking. I prefer something like offset of weight, because weight for me implies multiplication not addition/subtraction.