create operation related instances
Preconditions:
compatible is ensure by appManager.getOrCreateMicroserviceVersionRule
instances in "DiscoveryTreeNode parent" are compatible:
new version can only add operations, not delete operations
eg:
microservice name is ms1
2 instances are 1.0.0, instance id are i1/i2, schemaId is s1, operations are o1/o2
3 instances are 1.0.1, instance id are i3/i4/i5, schemaId is s1, operations are o1/o2/o3
will create nodes:
{
"ms1.s1.o1": {
{"i1": instance-i1}, {"i2": instance-i2}, {"i3": instance-i3}, {"i4": instance-i4}, {"i5": instance-i5}
},
"ms1.s1.o2": {
{"i1": instance-i1}, {"i2": instance-i2}, {"i3": instance-i3}, {"i4": instance-i4}, {"i5": instance-i5}
},
"ms1.s1.o3": {
{"i3": instance-i3}, {"i4": instance-i4}, {"i5": instance-i5}
},
}
that means, if invoke o1 or o2, can use 5 instances, but if invoke o3, can only use 3 instances
by this filter, we can make sure that new operations will not route to old instances