You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by "Afkham Azeez (JIRA)" <ji...@apache.org> on 2008/06/16 16:11:46 UTC

[jira] Created: (SYNAPSE-360) Dynamic load balancing

Dynamic load balancing
----------------------

                 Key: SYNAPSE-360
                 URL: https://issues.apache.org/jira/browse/SYNAPSE-360
             Project: Synapse
          Issue Type: New Feature
          Components: Endpoints
    Affects Versions: NIGHTLY
            Reporter: Afkham Azeez


There are some limitations in the current load balancer implementation. e.g. if we have 2 identical services in 2 different worker nodes, which are fronted by a synapse load balancer instance. In such a case, we need to provide 4 endpoints in the synapse.xml file. As can be seen, this is not a very scalable solution. Hence, I have implemented an dynamic load balancing mechanism where the application members are discovered at runtime, and the endpoint do not need to be statically specified in the synapse.xml file.

Currently, the application endpoints are calculated by replacing the IP and port of the incoming request with that of the member to which this request will be forwarded to. I have only tested with HTTP/S for the moment. More details about the concept & design can be found here: http://afkham.org/2008/06/fault-resilient-dynamic-load-balancing.html




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


[jira] Assigned: (SYNAPSE-360) Dynamic load balancing

Posted by "Ruwan Linton (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SYNAPSE-360?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ruwan Linton reassigned SYNAPSE-360:
------------------------------------

    Assignee: Ruwan Linton

> Dynamic load balancing
> ----------------------
>
>                 Key: SYNAPSE-360
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-360
>             Project: Synapse
>          Issue Type: New Feature
>          Components: Endpoints
>    Affects Versions: NIGHTLY
>            Reporter: Afkham Azeez
>            Assignee: Ruwan Linton
>         Attachments: dynamic-lb.patch
>
>
> There are some limitations in the current load balancer implementation. e.g. if we have 2 identical services in 2 different worker nodes, which are fronted by a synapse load balancer instance. In such a case, we need to provide 4 endpoints in the synapse.xml file. As can be seen, this is not a very scalable solution. Hence, I have implemented an dynamic load balancing mechanism where the application members are discovered at runtime, and the endpoint do not need to be statically specified in the synapse.xml file.
> Currently, the application endpoints are calculated by replacing the IP and port of the incoming request with that of the member to which this request will be forwarded to. I have only tested with HTTP/S for the moment. More details about the concept & design can be found here: http://afkham.org/2008/06/fault-resilient-dynamic-load-balancing.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


[jira] Commented: (SYNAPSE-360) Dynamic load balancing

Posted by "Ruwan Linton (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/SYNAPSE-360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12606257#action_12606257 ] 

Ruwan Linton commented on SYNAPSE-360:
--------------------------------------

Nice work azeez, I have committed the patch with very minor changes, for example I have turned off clustering in the default axis2.xml of the sample axis2 server and changed the documentation as appropriated.

Thanks for the contribution and keep up the work. :-)

With this patch, we are switching to the axis2 trunk, and for the moment I couldn't find any issue :-)

> Dynamic load balancing
> ----------------------
>
>                 Key: SYNAPSE-360
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-360
>             Project: Synapse
>          Issue Type: New Feature
>          Components: Endpoints
>    Affects Versions: NIGHTLY
>            Reporter: Afkham Azeez
>            Assignee: Ruwan Linton
>         Attachments: dynamic-lb.patch
>
>
> There are some limitations in the current load balancer implementation. e.g. if we have 2 identical services in 2 different worker nodes, which are fronted by a synapse load balancer instance. In such a case, we need to provide 4 endpoints in the synapse.xml file. As can be seen, this is not a very scalable solution. Hence, I have implemented an dynamic load balancing mechanism where the application members are discovered at runtime, and the endpoint do not need to be statically specified in the synapse.xml file.
> Currently, the application endpoints are calculated by replacing the IP and port of the incoming request with that of the member to which this request will be forwarded to. I have only tested with HTTP/S for the moment. More details about the concept & design can be found here: http://afkham.org/2008/06/fault-resilient-dynamic-load-balancing.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


[jira] Resolved: (SYNAPSE-360) Dynamic load balancing

Posted by "Ruwan Linton (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SYNAPSE-360?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ruwan Linton resolved SYNAPSE-360.
----------------------------------

       Resolution: Fixed
    Fix Version/s: NIGHTLY

Fixed on the SVN trunk.

> Dynamic load balancing
> ----------------------
>
>                 Key: SYNAPSE-360
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-360
>             Project: Synapse
>          Issue Type: New Feature
>          Components: Endpoints
>    Affects Versions: NIGHTLY
>            Reporter: Afkham Azeez
>            Assignee: Ruwan Linton
>             Fix For: NIGHTLY
>
>         Attachments: dynamic-lb.patch
>
>
> There are some limitations in the current load balancer implementation. e.g. if we have 2 identical services in 2 different worker nodes, which are fronted by a synapse load balancer instance. In such a case, we need to provide 4 endpoints in the synapse.xml file. As can be seen, this is not a very scalable solution. Hence, I have implemented an dynamic load balancing mechanism where the application members are discovered at runtime, and the endpoint do not need to be statically specified in the synapse.xml file.
> Currently, the application endpoints are calculated by replacing the IP and port of the incoming request with that of the member to which this request will be forwarded to. I have only tested with HTTP/S for the moment. More details about the concept & design can be found here: http://afkham.org/2008/06/fault-resilient-dynamic-load-balancing.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


[jira] Updated: (SYNAPSE-360) Dynamic load balancing

Posted by "Afkham Azeez (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SYNAPSE-360?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Afkham Azeez updated SYNAPSE-360:
---------------------------------

    Attachment: axis2Server.patch

axis2Server.patch addresses the listener starting order issue

> Dynamic load balancing
> ----------------------
>
>                 Key: SYNAPSE-360
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-360
>             Project: Synapse
>          Issue Type: New Feature
>          Components: Endpoints
>    Affects Versions: NIGHTLY
>            Reporter: Afkham Azeez
>            Assignee: Ruwan Linton
>             Fix For: NIGHTLY
>
>         Attachments: axis2Server.patch, dynamic-lb.patch
>
>
> There are some limitations in the current load balancer implementation. e.g. if we have 2 identical services in 2 different worker nodes, which are fronted by a synapse load balancer instance. In such a case, we need to provide 4 endpoints in the synapse.xml file. As can be seen, this is not a very scalable solution. Hence, I have implemented an dynamic load balancing mechanism where the application members are discovered at runtime, and the endpoint do not need to be statically specified in the synapse.xml file.
> Currently, the application endpoints are calculated by replacing the IP and port of the incoming request with that of the member to which this request will be forwarded to. I have only tested with HTTP/S for the moment. More details about the concept & design can be found here: http://afkham.org/2008/06/fault-resilient-dynamic-load-balancing.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


[jira] Commented: (SYNAPSE-360) Dynamic load balancing

Posted by "Ruwan Linton (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/SYNAPSE-360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12605491#action_12605491 ] 

Ruwan Linton commented on SYNAPSE-360:
--------------------------------------

Azeez, I expect Synapse works well with axis2 SNAPSHOT, because this patch requires the axis2 version to be SNAPSHOT

> Dynamic load balancing
> ----------------------
>
>                 Key: SYNAPSE-360
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-360
>             Project: Synapse
>          Issue Type: New Feature
>          Components: Endpoints
>    Affects Versions: NIGHTLY
>            Reporter: Afkham Azeez
>            Assignee: Ruwan Linton
>         Attachments: dynamic-lb.patch
>
>
> There are some limitations in the current load balancer implementation. e.g. if we have 2 identical services in 2 different worker nodes, which are fronted by a synapse load balancer instance. In such a case, we need to provide 4 endpoints in the synapse.xml file. As can be seen, this is not a very scalable solution. Hence, I have implemented an dynamic load balancing mechanism where the application members are discovered at runtime, and the endpoint do not need to be statically specified in the synapse.xml file.
> Currently, the application endpoints are calculated by replacing the IP and port of the incoming request with that of the member to which this request will be forwarded to. I have only tested with HTTP/S for the moment. More details about the concept & design can be found here: http://afkham.org/2008/06/fault-resilient-dynamic-load-balancing.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


[jira] Reopened: (SYNAPSE-360) Dynamic load balancing

Posted by "Afkham Azeez (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SYNAPSE-360?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Afkham Azeez reopened SYNAPSE-360:
----------------------------------


We need to start the listeners at last, so that in dynamic LB, the LB can start sending messages to a node only after its listeners have started

> Dynamic load balancing
> ----------------------
>
>                 Key: SYNAPSE-360
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-360
>             Project: Synapse
>          Issue Type: New Feature
>          Components: Endpoints
>    Affects Versions: NIGHTLY
>            Reporter: Afkham Azeez
>            Assignee: Ruwan Linton
>             Fix For: NIGHTLY
>
>         Attachments: dynamic-lb.patch
>
>
> There are some limitations in the current load balancer implementation. e.g. if we have 2 identical services in 2 different worker nodes, which are fronted by a synapse load balancer instance. In such a case, we need to provide 4 endpoints in the synapse.xml file. As can be seen, this is not a very scalable solution. Hence, I have implemented an dynamic load balancing mechanism where the application members are discovered at runtime, and the endpoint do not need to be statically specified in the synapse.xml file.
> Currently, the application endpoints are calculated by replacing the IP and port of the incoming request with that of the member to which this request will be forwarded to. I have only tested with HTTP/S for the moment. More details about the concept & design can be found here: http://afkham.org/2008/06/fault-resilient-dynamic-load-balancing.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


[jira] Resolved: (SYNAPSE-360) Dynamic load balancing

Posted by "Ruwan Linton (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SYNAPSE-360?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ruwan Linton resolved SYNAPSE-360.
----------------------------------

    Resolution: Fixed

Committed the patch for azeez

> Dynamic load balancing
> ----------------------
>
>                 Key: SYNAPSE-360
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-360
>             Project: Synapse
>          Issue Type: New Feature
>          Components: Endpoints
>    Affects Versions: NIGHTLY
>            Reporter: Afkham Azeez
>            Assignee: Ruwan Linton
>             Fix For: NIGHTLY
>
>         Attachments: axis2Server.patch, dynamic-lb.patch
>
>
> There are some limitations in the current load balancer implementation. e.g. if we have 2 identical services in 2 different worker nodes, which are fronted by a synapse load balancer instance. In such a case, we need to provide 4 endpoints in the synapse.xml file. As can be seen, this is not a very scalable solution. Hence, I have implemented an dynamic load balancing mechanism where the application members are discovered at runtime, and the endpoint do not need to be statically specified in the synapse.xml file.
> Currently, the application endpoints are calculated by replacing the IP and port of the incoming request with that of the member to which this request will be forwarded to. I have only tested with HTTP/S for the moment. More details about the concept & design can be found here: http://afkham.org/2008/06/fault-resilient-dynamic-load-balancing.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


[jira] Commented: (SYNAPSE-360) Dynamic load balancing

Posted by "Afkham Azeez (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/SYNAPSE-360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12605495#action_12605495 ] 

Afkham Azeez commented on SYNAPSE-360:
--------------------------------------

I have made changes to the Axis2 clustering implementation that allows a node to behave as a load balancer. The changes were made to the axis2 clustering module and the one class(ClusterBuilder) in the deployment package in the axis2 kernel and in the clustering package in the axis2 kernel.

All test cases pass with Axis2 SNAPSHOT though

> Dynamic load balancing
> ----------------------
>
>                 Key: SYNAPSE-360
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-360
>             Project: Synapse
>          Issue Type: New Feature
>          Components: Endpoints
>    Affects Versions: NIGHTLY
>            Reporter: Afkham Azeez
>            Assignee: Ruwan Linton
>         Attachments: dynamic-lb.patch
>
>
> There are some limitations in the current load balancer implementation. e.g. if we have 2 identical services in 2 different worker nodes, which are fronted by a synapse load balancer instance. In such a case, we need to provide 4 endpoints in the synapse.xml file. As can be seen, this is not a very scalable solution. Hence, I have implemented an dynamic load balancing mechanism where the application members are discovered at runtime, and the endpoint do not need to be statically specified in the synapse.xml file.
> Currently, the application endpoints are calculated by replacing the IP and port of the incoming request with that of the member to which this request will be forwarded to. I have only tested with HTTP/S for the moment. More details about the concept & design can be found here: http://afkham.org/2008/06/fault-resilient-dynamic-load-balancing.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


[jira] Updated: (SYNAPSE-360) Dynamic load balancing

Posted by "Afkham Azeez (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SYNAPSE-360?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Afkham Azeez updated SYNAPSE-360:
---------------------------------

    Attachment: dynamic-lb.patch

Patch including implementation, sample and documentation.

> Dynamic load balancing
> ----------------------
>
>                 Key: SYNAPSE-360
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-360
>             Project: Synapse
>          Issue Type: New Feature
>          Components: Endpoints
>    Affects Versions: NIGHTLY
>            Reporter: Afkham Azeez
>         Attachments: dynamic-lb.patch
>
>
> There are some limitations in the current load balancer implementation. e.g. if we have 2 identical services in 2 different worker nodes, which are fronted by a synapse load balancer instance. In such a case, we need to provide 4 endpoints in the synapse.xml file. As can be seen, this is not a very scalable solution. Hence, I have implemented an dynamic load balancing mechanism where the application members are discovered at runtime, and the endpoint do not need to be statically specified in the synapse.xml file.
> Currently, the application endpoints are calculated by replacing the IP and port of the incoming request with that of the member to which this request will be forwarded to. I have only tested with HTTP/S for the moment. More details about the concept & design can be found here: http://afkham.org/2008/06/fault-resilient-dynamic-load-balancing.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org