pip/pip-301.md
The following z-nodes store the load and quota data about loadbalance. And the CRUD about them are handled by localMetadataStore, not configurationMetadataStore.
/loadbalance/bundle-data/loadbalance/broker-time-average/loadbalance/resource-quotaCurrently, the access about the above z-nodes are distributed everywhere. It's very easy to call the the wrong configurationMetadataStore to handle them, e.g.:
Refactor the access code about balance/load data
Introduce LoadBalanceResources to unify the CRUD about balance/load data.
None
Introduce LoadBalanceResources which has three inner class:
BundleDataResourcesBrokerTimeAverageResourcesQuotaResourcespublic class LoadBalanceResources {
public static final String BUNDLE_DATA_BASE_PATH = "/loadbalance/bundle-data";
public static final String BROKER_TIME_AVERAGE_BASE_PATH = "/loadbalance/broker-time-average";
public static final String RESOURCE_QUOTA_BASE_PATH = "/loadbalance/resource-quota";
private final BundleDataResources bundleDataResources;
public LoadBalanceResources(MetadataStore store, int operationTimeoutSec) {
bundleDataResources = new BundleDataResources(store, operationTimeoutSec);
}
public static class BundleDataResources extends BaseResources<BundleData> {
public BundleDataResources(MetadataStore store, int operationTimeoutSec) {
super(store, BundleData.class, operationTimeoutSec);
}
// ...
}
public static class BrokerTimeAverageResources extends BaseResources<TimeAverageBrokerData> {
public BrokerTimeAverageResources(MetadataStore store, int operationTimeoutSec) {
super(store, TimeAverageBrokerData.class, operationTimeoutSec);
}
// ...
}
public static class QuotaResources extends BaseResources<ResourceQuota> {
public QuotaResources(MetadataStore store, int operationTimeoutSec) {
super(store, ResourceQuota.class, operationTimeoutSec);
}
// ...
}
}
None
None
None