use of com.predic8.membrane.core.interceptor.balancer.Balancer in project service-proxy by membrane.
the class ProxyRuleTest method getInterceptors.
private List<Interceptor> getInterceptors() {
List<Interceptor> interceptors = new ArrayList<Interceptor>();
Interceptor balancer = new LoadBalancingInterceptor();
balancer.setId("roundRobinBalancer");
interceptors.add(balancer);
Interceptor acl = new AccessControlInterceptor();
acl.setId("accessControlInterceptor");
interceptors.add(acl);
return interceptors;
}
use of com.predic8.membrane.core.interceptor.balancer.Balancer in project service-proxy by membrane.
the class AdminPageBuilder method createClustersTable.
protected void createClustersTable(String balancerName) throws UnsupportedEncodingException {
table().attr("cellpadding", "0", "cellspacing", "0", "border", "0", "class", "display clustersTable");
thead();
tr();
createThs("Name", "#Nodes", "Health");
end();
end();
tbody();
for (Cluster c : BalancerUtil.lookupBalancer(router, balancerName).getClusters()) {
tr();
td();
createLink(!c.getName().isEmpty() ? c.getName() : "<unnamed>", "clusters", "show", createQueryString("balancer", balancerName, "cluster", c.getName()));
end();
createTds(String.valueOf(BalancerUtil.lookupBalancer(router, balancerName).getAllNodesByCluster(c.getName()).size()), getFormatedHealth(balancerName, c.getName()));
end();
}
end();
end();
}
use of com.predic8.membrane.core.interceptor.balancer.Balancer in project service-proxy by membrane.
the class AdminPageBuilder method getFormatedHealth.
private String getFormatedHealth(String balancerName) {
Balancer balancer = BalancerUtil.lookupBalancer(router, balancerName);
int available = 0, all = 0;
for (Cluster c : balancer.getClusters()) {
all += balancer.getAllNodesByCluster(c.getName()).size();
available += balancer.getAvailableNodesByCluster(c.getName()).size();
}
return String.format("%d up/ %d down", available, all - available);
}
use of com.predic8.membrane.core.interceptor.balancer.Balancer in project service-proxy by membrane.
the class DynamicAdminPageInterceptor method handleNodeShowRequest.
@Mapping("/admin/node/show/?(\\?.*)?")
public Response handleNodeShowRequest(final Map<String, String> params, String relativeRootPath) throws Exception {
StringWriter writer = new StringWriter();
return respond(new AdminPageBuilder(writer, router, relativeRootPath, params, readOnly) {
@Override
protected int getSelectedTab() {
return TAB_ID_LOAD_BALANCING;
}
@Override
protected void createTabContent() throws Exception {
String balancer = getBalancerParam(params);
h2().text("Node " + params.get("host") + ":" + params.get("port") + " (" + "Cluster " + params.get("cluster") + " of Balancer " + balancer + ")").end();
h3().text("Status Codes").end();
Node n = BalancerUtil.lookupBalancer(router, balancer).getNode(params.get("cluster"), params.get("host"), Integer.parseInt(params.get("port")));
createStatusCodesTable(n.getStatisticsByStatusCodes());
p().text("Total requests: " + n.getCounter()).end();
p().text("Current threads: " + n.getThreads()).end();
p().text("Requests without responses: " + n.getLost()).end();
span().classAttr("mb-button");
createLink("Reset Counter", "node", "reset", createQueryString("balancer", balancer, "cluster", params.get("cluster"), "host", n.getHost(), "port", "" + n.getPort()));
end();
span().classAttr("mb-button");
createLink("Show Sessions", "node", "sessions", createQueryString("balancer", balancer, "cluster", params.get("cluster"), "host", n.getHost(), "port", "" + n.getPort()));
end();
}
}.createPage());
}
Aggregations