This commit is contained in:
wenshao
2011-12-26 13:42:33 +08:00
parent 726720d55a
commit 18f1875e24
5 changed files with 46 additions and 3 deletions
@@ -0,0 +1,18 @@
package com.alibaba.druid.pool.ha.balance;
import com.alibaba.druid.pool.ha.MultiDataSource;
public abstract class AbstractBalancer implements Balancer {
private MultiDataSource multiDataSource;
@Override
public void init(MultiDataSource multiDataSource) {
this.multiDataSource = multiDataSource;
}
public MultiDataSource getMultiDataSource() {
return multiDataSource;
}
}
@@ -2,6 +2,7 @@ package com.alibaba.druid.pool.ha.balance;
import java.sql.SQLException;
import com.alibaba.druid.pool.ha.DataSourceChangedEvent;
import com.alibaba.druid.pool.ha.MultiConnectionHolder;
import com.alibaba.druid.pool.ha.MultiDataSource;
import com.alibaba.druid.pool.ha.MultiDataSourceConnection;
@@ -10,7 +11,7 @@ public interface Balancer {
void init(MultiDataSource dataSource);
void afterDataSourceChanged(Object event);
void afterDataSourceChanged(DataSourceChangedEvent event);
MultiConnectionHolder getConnection(MultiDataSourceConnection connectionProxy, String sql) throws SQLException;
}
@@ -0,0 +1,22 @@
package com.alibaba.druid.pool.ha.balance;
import java.sql.SQLException;
import com.alibaba.druid.pool.ha.DataSourceChangedEvent;
import com.alibaba.druid.pool.ha.MultiConnectionHolder;
import com.alibaba.druid.pool.ha.MultiDataSourceConnection;
public class LeastConnectionBalancer extends AbstractBalancer {
@Override
public void afterDataSourceChanged(DataSourceChangedEvent event) {
}
@Override
public MultiConnectionHolder getConnection(MultiDataSourceConnection connectionProxy, String sql)
throws SQLException {
return null;
}
}
@@ -5,6 +5,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import com.alibaba.druid.logging.Log;
import com.alibaba.druid.logging.LogFactory;
import com.alibaba.druid.pool.ha.DataSourceChangedEvent;
import com.alibaba.druid.pool.ha.DataSourceHolder;
import com.alibaba.druid.pool.ha.MultiConnectionHolder;
import com.alibaba.druid.pool.ha.MultiDataSource;
@@ -22,7 +23,7 @@ public class RoundRobinBlancer implements Balancer {
}
public void afterDataSourceChanged(Object event) {
public void afterDataSourceChanged(DataSourceChangedEvent event) {
}
@@ -4,6 +4,7 @@ import java.sql.SQLException;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import com.alibaba.druid.pool.ha.DataSourceChangedEvent;
import com.alibaba.druid.pool.ha.DataSourceHolder;
import com.alibaba.druid.pool.ha.MultiConnectionHolder;
import com.alibaba.druid.pool.ha.MultiDataSource;
@@ -20,7 +21,7 @@ public class WeightBalancer implements Balancer {
this.multiDataSource = multiDataSource;
}
public void afterDataSourceChanged(Object event) {
public void afterDataSourceChanged(DataSourceChangedEvent event) {
computeTotalWeight();
}