Skip to content

Commit

Permalink
完善接口和调整spring注入方式.
Browse files Browse the repository at this point in the history
  • Loading branch information
hidehai committed Mar 24, 2016
1 parent 3da7100 commit 0933bdc
Show file tree
Hide file tree
Showing 5 changed files with 73 additions and 7 deletions.
10 changes: 10 additions & 0 deletions dubbokeeper-storage/mongodb-storage/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -51,5 +51,15 @@
<artifactId>mongo-java-driver</artifactId>
<version>${mongodb.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.6</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.slf4j.LoggerFactory;
import org.springframework.transaction.support.TransactionTemplate;

import javax.sql.DataSource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
Expand Down Expand Up @@ -45,6 +46,14 @@ public class ApplicationStatisticsStorage extends Thread{

private static final int WRITE_INTERVAL= Integer.parseInt(ConfigUtils.getProperty("mongodb.commit.interval", "100"));


public ApplicationStatisticsStorage(ApplicationDao applicationDao,
StatisticsDao statisticsDao,
String application,
int type){
this(applicationDao,statisticsDao,application,type,false);
}

public ApplicationStatisticsStorage(ApplicationDao applicationDao,
StatisticsDao statisticsDao,
String applicationName,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import org.apache.commons.lang.StringUtils;
import org.apache.zookeeper.data.Stat;
import org.bson.Document;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
Expand All @@ -42,15 +43,28 @@
* @fix:
* @description: 描述功能
*/
public class MongoDBStatisticsStorage implements StatisticsStorage {
public class MongoDBStatisticsStorage implements StatisticsStorage,InitializingBean {

private static final ConcurrentHashMap<String,ApplicationStatisticsStorage> APPLICATION_STORAGES = new ConcurrentHashMap<String, ApplicationStatisticsStorage>();

@Autowired
private ApplicationDao applicationDao;
@Autowired
private StatisticsDao statisticsDao;

public ApplicationDao getApplicationDao() {
return applicationDao;
}

public void setApplicationDao(ApplicationDao applicationDao) {
this.applicationDao = applicationDao;
}

public StatisticsDao getStatisticsDao() {
return statisticsDao;
}

public void setStatisticsDao(StatisticsDao statisticsDao) {
this.statisticsDao = statisticsDao;
}

@Override
public void storeStatistics(Statistics statistics) {
Expand Down Expand Up @@ -109,8 +123,15 @@ public Collection<ApplicationInfo> queryApplications() {

@Override
public ApplicationInfo queryApplicationInfo(String application, long start, long end) {
//TODO fix
return null;
ApplicationStatisticsStorage applicationStatisticsStorage = APPLICATION_STORAGES.get(application);
ApplicationInfo applicationInfo = new ApplicationInfo();
applicationInfo.setApplicationName(applicationStatisticsStorage.getApplication());
applicationInfo.setApplicationType(applicationStatisticsStorage.getType());
applicationInfo.setMaxConcurrent(statisticsDao.queryMaxItemByService(application,null,"concurrent",start,end).getConcurrent());
applicationInfo.setMaxElapsed(statisticsDao.queryMaxItemByService(application,null,"elapsed",start,end).getElapsed());
applicationInfo.setMaxFault(statisticsDao.queryMaxItemByService(application,null,"failureCount",start,end).getFailureCount());
applicationInfo.setMaxSuccess(statisticsDao.queryMaxItemByService(application,null,"successCount",start,end).getSuccessCount());
return applicationInfo;
}

@Override
Expand Down Expand Up @@ -211,4 +232,17 @@ private void convertItem(BaseItem item,Statistics statistics){
item.setRemoteType(statistics.getRemoteType().toString());
}

@Override
public void afterPropertiesSet() throws Exception {
Collection<ApplicationInfo> apps = applicationDao.findAll();
for(ApplicationInfo app:apps){
ApplicationStatisticsStorage applicationStatisticsStorage = new ApplicationStatisticsStorage(applicationDao,statisticsDao,
app.getApplicationName(),
app.getApplicationType());
APPLICATION_STORAGES.put(app.getApplicationName(),applicationStatisticsStorage);
applicationStatisticsStorage.start();
LOGGER.info("start application [{}] storage",app.getApplicationName());
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,15 @@ public class ApplicationDao {

private static final String APPLICATION_COLLECTIONS = "application";

@Autowired
private MongoTemplate mongoTemplate;

public MongoTemplate getMongoTemplate() {
return mongoTemplate;
}

public void setMongoTemplate(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}

public void updateAppType(String application, int type){
Query query = new Query(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,16 @@ public class StatisticsDao {

private static final String STATISTICS_COLLECTIONS = "statistics";

@Autowired
private MongoTemplate mongoTemplate;

public MongoTemplate getMongoTemplate() {
return mongoTemplate;
}

public void setMongoTemplate(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}

public void addOne(String application,Statistics statistics){
mongoTemplate.save(statistics,String.format("%s_%s",STATISTICS_COLLECTIONS,application));
}
Expand Down

0 comments on commit 0933bdc

Please sign in to comment.