Commit 3ddf3e6b by 张乐 Committed by GitHub

Merge pull request #505 from nobodyiam/config-service-optimize

Config service optimize
parents 75bed9b3 967041c4
...@@ -96,14 +96,4 @@ ...@@ -96,14 +96,4 @@
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
<profiles>
<profile>
<id>github</id>
<properties>
<package.environment>github</package.environment>
</properties>
<dependencies>
</dependencies>
</profile>
</profiles>
</project> </project>
...@@ -97,14 +97,4 @@ ...@@ -97,14 +97,4 @@
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
<profiles>
<profile>
<id>github</id>
<properties>
<package.environment>github</package.environment>
</properties>
<dependencies>
</dependencies>
</profile>
</profiles>
</project> </project>
...@@ -36,6 +36,7 @@ public class InstanceConfigAuditUtil implements InitializingBean { ...@@ -36,6 +36,7 @@ public class InstanceConfigAuditUtil implements InitializingBean {
private static final int INSTANCE_CONFIG_AUDIT_MAX_SIZE = 2000; private static final int INSTANCE_CONFIG_AUDIT_MAX_SIZE = 2000;
private static final int INSTANCE_CACHE_MAX_SIZE = 10000; private static final int INSTANCE_CACHE_MAX_SIZE = 10000;
private static final int INSTANCE_CONFIG_CACHE_MAX_SIZE = 10000; private static final int INSTANCE_CONFIG_CACHE_MAX_SIZE = 10000;
private static final long OFFER_TIME_LAST_MODIFIED_TIME_THRESHOLD_IN_MILLI = TimeUnit.MINUTES.toMillis(10);//10 minutes
private static final Joiner STRING_JOINER = Joiner.on(ConfigConsts.CLUSTER_NAMESPACE_SEPARATOR); private static final Joiner STRING_JOINER = Joiner.on(ConfigConsts.CLUSTER_NAMESPACE_SEPARATOR);
private final ExecutorService auditExecutorService; private final ExecutorService auditExecutorService;
private final AtomicBoolean auditStopped; private final AtomicBoolean auditStopped;
...@@ -93,6 +94,10 @@ public class InstanceConfigAuditUtil implements InitializingBean { ...@@ -93,6 +94,10 @@ public class InstanceConfigAuditUtil implements InitializingBean {
instanceConfig.setConfigClusterName(auditModel.getConfigClusterName()); instanceConfig.setConfigClusterName(auditModel.getConfigClusterName());
instanceConfig.setReleaseKey(auditModel.getReleaseKey()); instanceConfig.setReleaseKey(auditModel.getReleaseKey());
instanceConfig.setReleaseDeliveryTime(auditModel.getOfferTime()); instanceConfig.setReleaseDeliveryTime(auditModel.getOfferTime());
} else if (offerTimeAndLastModifiedTimeCloseEnough(auditModel.getOfferTime(),
instanceConfig.getDataChangeLastModifiedTime())) {
//when releaseKey is the same, optimize to reduce writes if the record was updated not long ago
return;
} }
//we need to update no matter the release key is the same or not, to ensure the //we need to update no matter the release key is the same or not, to ensure the
//last modified time is updated each day //last modified time is updated each day
...@@ -117,6 +122,11 @@ public class InstanceConfigAuditUtil implements InitializingBean { ...@@ -117,6 +122,11 @@ public class InstanceConfigAuditUtil implements InitializingBean {
} }
} }
private boolean offerTimeAndLastModifiedTimeCloseEnough(Date offerTime, Date lastModifiedTime) {
return (offerTime.getTime() - lastModifiedTime.getTime()) <
OFFER_TIME_LAST_MODIFIED_TIME_THRESHOLD_IN_MILLI;
}
private long prepareInstanceId(InstanceConfigAuditModel auditModel) { private long prepareInstanceId(InstanceConfigAuditModel auditModel) {
Instance instance = instanceService.findInstance(auditModel.getAppId(), auditModel Instance instance = instanceService.findInstance(auditModel.getAppId(), auditModel
.getClusterName(), auditModel.getDataCenter(), auditModel.getIp()); .getClusterName(), auditModel.getDataCenter(), auditModel.getIp());
......
...@@ -70,13 +70,5 @@ ...@@ -70,13 +70,5 @@
</dependency> </dependency>
</dependencies> </dependencies>
</profile> </profile>
<profile>
<id>github</id>
<properties>
<package.environment>github</package.environment>
</properties>
<dependencies>
</dependencies>
</profile>
</profiles> </profiles>
</project> </project>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment