Search in sources :

Example 6 with Balancer

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;
}
Also used : LoadBalancingInterceptor(com.predic8.membrane.core.interceptor.balancer.LoadBalancingInterceptor) AccessControlInterceptor(com.predic8.membrane.core.interceptor.acl.AccessControlInterceptor) ArrayList(java.util.ArrayList) AccessControlInterceptor(com.predic8.membrane.core.interceptor.acl.AccessControlInterceptor) LoadBalancingInterceptor(com.predic8.membrane.core.interceptor.balancer.LoadBalancingInterceptor) Interceptor(com.predic8.membrane.core.interceptor.Interceptor)

Example 7 with Balancer

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();
}
Also used : Cluster(com.predic8.membrane.core.interceptor.balancer.Cluster)

Example 8 with Balancer

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);
}
Also used : Balancer(com.predic8.membrane.core.interceptor.balancer.Balancer) Cluster(com.predic8.membrane.core.interceptor.balancer.Cluster)

Example 9 with Balancer

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());
}
Also used : StringWriter(java.io.StringWriter) Node(com.predic8.membrane.core.interceptor.balancer.Node) URLParamUtil.createQueryString(com.predic8.membrane.core.util.URLParamUtil.createQueryString)

Aggregations

LoadBalancingInterceptor (com.predic8.membrane.core.interceptor.balancer.LoadBalancingInterceptor)3 HttpRouter (com.predic8.membrane.core.HttpRouter)2 Cluster (com.predic8.membrane.core.interceptor.balancer.Cluster)2 Node (com.predic8.membrane.core.interceptor.balancer.Node)2 RoundRobinStrategy (com.predic8.membrane.core.interceptor.balancer.RoundRobinStrategy)2 Before (org.junit.Before)2 Exchange (com.predic8.membrane.core.exchange.Exchange)1 AbstractInterceptor (com.predic8.membrane.core.interceptor.AbstractInterceptor)1 Interceptor (com.predic8.membrane.core.interceptor.Interceptor)1 Outcome (com.predic8.membrane.core.interceptor.Outcome)1 AccessControlInterceptor (com.predic8.membrane.core.interceptor.acl.AccessControlInterceptor)1 Balancer (com.predic8.membrane.core.interceptor.balancer.Balancer)1 ByThreadStrategy (com.predic8.membrane.core.interceptor.balancer.ByThreadStrategy)1 ServiceProxy (com.predic8.membrane.core.rules.ServiceProxy)1 ServiceProxyKey (com.predic8.membrane.core.rules.ServiceProxyKey)1 DummyWebServiceInterceptor (com.predic8.membrane.core.services.DummyWebServiceInterceptor)1 URLParamUtil.createQueryString (com.predic8.membrane.core.util.URLParamUtil.createQueryString)1 Process2 (com.predic8.membrane.examples.Process2)1 File (java.io.File)1 StringWriter (java.io.StringWriter)1