You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by di...@apache.org on 2014/09/19 07:01:26 UTC
git commit: Service aware load balance support in HAProxy
Repository: stratos
Updated Branches:
refs/heads/master 89f9b467c -> f29cd3293
Service aware load balance support in HAProxy
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/f29cd329
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/f29cd329
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/f29cd329
Branch: refs/heads/master
Commit: f29cd329368eace35767de1804484921cd9c6683
Parents: 89f9b46
Author: Dinesh Bandara <di...@wso2.com>
Authored: Fri Sep 19 02:15:40 2014 +0530
Committer: Dinesh Bandara <di...@wso2.com>
Committed: Fri Sep 19 02:15:40 2014 +0530
----------------------------------------------------------------------
.../src/main/bin/haproxy-extension.sh | 1 +
.../stratos/haproxy/extension/Constants.java | 4 ++-
.../haproxy/extension/HAProxyConfigWriter.java | 35 +++++++++++++-------
.../haproxy/extension/HAProxyContext.java | 8 +++--
4 files changed, 33 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/f29cd329/extensions/load-balancer/haproxy-extension/src/main/bin/haproxy-extension.sh
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/haproxy-extension/src/main/bin/haproxy-extension.sh b/extensions/load-balancer/haproxy-extension/src/main/bin/haproxy-extension.sh
index 43fa639..3f6bc73 100755
--- a/extensions/load-balancer/haproxy-extension/src/main/bin/haproxy-extension.sh
+++ b/extensions/load-balancer/haproxy-extension/src/main/bin/haproxy-extension.sh
@@ -40,6 +40,7 @@ properties="-Dhaproxy.private.ip=127.0.0.1
-Dthrift.receiver.port=7615
-Dnetwork.partition.id=network-partition-1
-Dcluster.id=cluster
+ -Dcep.stats.publisher.enabled=true"
# Uncomment below line to enable remote debugging
http://git-wip-us.apache.org/repos/asf/stratos/blob/f29cd329/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/Constants.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/Constants.java b/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/Constants.java
index 6fe77ca..eb88c16 100644
--- a/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/Constants.java
+++ b/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/Constants.java
@@ -38,9 +38,11 @@ public class Constants {
public static final String LOAD_BALANCER = "load.balancer";
public static final String LOAD_BALANCER_REF = "load.balancer.ref";
- public static final String NO_LOAD_BALANCER = "no.load.balancer";
+
public static final String LB_SERVICE_TYPE ="load.balanced.service.type";
+
public static final String DEFAULT_LOAD_BALANCER ="default.load.balancer";
public static final String STATIC_LOAD_BALANCER ="static.load.balancer";
public static final String SERVICE_LOAD_BALANCER = "service.aware.load.balancer";
+ public static final String NO_LOAD_BALANCER = "no.load.balancer";
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/f29cd329/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java b/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java
index 77f86af..10a4c97 100644
--- a/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java
+++ b/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java
@@ -57,8 +57,8 @@ public class HAProxyConfigWriter {
private String frontEndHttpId, frontEndHttpsId;
private boolean frontEndHttpAdded, frontEndHttpsAdded;
- private String loadBalancerType; // Load Balancer type (default, service aware or static)
- String loadBalancedServiceType; // Service type if load balancer is a service aware
+ private String loadBalancerType; // Load Balancer type (default, service aware, static)
+ private String loadBalancedServiceType; // Service type if load balancer is a service aware
public HAProxyConfigWriter(String templatePath, String templateName, String confFilePath, String statsSocketFilePath) {
this.templatePath = templatePath;
@@ -79,14 +79,18 @@ public class HAProxyConfigWriter {
frontEndHttpsAdded = false;
for (Service service : topology.getServices()) {
- if(service.getServiceName().equals("haproxy")) {
+ if (service.getServiceName().equals("haproxy")) {
for (Cluster cluster : service.getClusters()) {
- if(cluster.getClusterId().equals(HAProxyContext.getInstance().getClusterId()))
- {
- loadBalancerType = cluster.getProperties().getProperty(Constants.LOAD_BALANCER_REF);
- if(cluster.getProperties().getProperty(Constants.LB_SERVICE_TYPE) != null)
- loadBalancedServiceType = cluster.getProperties().getProperty(Constants.LB_SERVICE_TYPE);
- break;
+ if (cluster.getClusterId().equals(HAProxyContext.getInstance().getClusterId())) {
+ if ((cluster.getProperties().getProperty(Constants.LOAD_BALANCER) != null) && (cluster.getProperties().getProperty(Constants.LOAD_BALANCER_REF) != null)) {
+ loadBalancerType = cluster.getProperties().getProperty(Constants.LOAD_BALANCER_REF);
+ if (cluster.getProperties().getProperty(Constants.LB_SERVICE_TYPE) != null)
+ loadBalancedServiceType = cluster.getProperties().getProperty(Constants.LB_SERVICE_TYPE);
+ break;
+ } else {
+ loadBalancerType = cluster.getProperties().getProperty(Constants.STATIC_LOAD_BALANCER);
+ break;
+ }
}
}
}
@@ -94,10 +98,17 @@ public class HAProxyConfigWriter {
for (Service service : topology.getServices()) {
for (Cluster cluster : service.getClusters()) {
- if ((cluster.getProperties().getProperty(Constants.LOAD_BALANCER) == null)) {
+ if (cluster.getProperties().getProperty(Constants.LOAD_BALANCER) == null) {
if ((cluster.getProperties().getProperty(Constants.LOAD_BALANCER_REF) != null)) {
- if(!(cluster.getProperties().getProperty(Constants.LOAD_BALANCER_REF).equals(Constants.NO_LOAD_BALANCER)) &&
- cluster.getProperties().getProperty(Constants.LOAD_BALANCER_REF).equals(loadBalancerType)) {
+ if ((cluster.getProperties().getProperty(Constants.LOAD_BALANCER_REF).equals(Constants.NO_LOAD_BALANCER)) &&
+ Constants.STATIC_LOAD_BALANCER.equals(loadBalancerType)) {
+ createConfig(service, cluster);
+ } else if ((cluster.getProperties().getProperty(Constants.LOAD_BALANCER_REF).equals(Constants.DEFAULT_LOAD_BALANCER)) &&
+ Constants.DEFAULT_LOAD_BALANCER.equals(loadBalancerType)) {
+ createConfig(service, cluster);
+ } else if ((cluster.getProperties().getProperty(Constants.LOAD_BALANCER_REF).equals(Constants.SERVICE_LOAD_BALANCER)) &&
+ Constants.SERVICE_LOAD_BALANCER.equals(loadBalancerType) &&
+ cluster.getServiceName().equals(loadBalancedServiceType)) {
createConfig(service, cluster);
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/f29cd329/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyContext.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyContext.java b/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyContext.java
index 55dfecc..f73498a 100644
--- a/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyContext.java
+++ b/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyContext.java
@@ -141,7 +141,11 @@ public class HAProxyContext {
return cepStatsPublisherEnabled;
}
- public String getNetworkPartitionId() { return networkPartitionId; };
+ public String getNetworkPartitionId() {
+ return networkPartitionId;
+ }
- public String getClusterId() { return clusterId; };
+ public String getClusterId() {
+ return clusterId;
+ }
}