You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Miroslav Novak (JIRA)" <ji...@apache.org> on 2016/05/31 11:27:12 UTC
[jira] [Commented] (ARTEMIS-546) Allow to disable client-side
load-balancing
[ https://issues.apache.org/jira/browse/ARTEMIS-546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15307591#comment-15307591 ]
Miroslav Novak commented on ARTEMIS-546:
----------------------------------------
Looking at the code in {{ServerLocatorImpl.selectConnector()}}, I'm not sure if use of {{loadBalancingPolicy}} when {{usedTopology}} is {{null}} is valid as we should iterate over them everytime. Currently we iterate over them because round robin policy is used by default.
{code}
private TransportConfiguration selectConnector() {
Pair<TransportConfiguration, TransportConfiguration>[] usedTopology;
synchronized (topologyArrayGuard) {
usedTopology = topologyArray;
}
synchronized (this) {
// if the topologyArray is null, we will use the initialConnectors
if (usedTopology != null) {
if (logger.isTraceEnabled()) {
logger.trace("Selecting connector from toplogy.");
}
int pos = loadBalancingPolicy.select(usedTopology.length);
Pair<TransportConfiguration, TransportConfiguration> pair = usedTopology[pos];
return pair.getA();
}
else {
// Get from initialconnectors
if (logger.isTraceEnabled()) {
logger.trace("Selecting connector from initial connectors.");
}
int pos = loadBalancingPolicy.select(initialConnectors.length);
return initialConnectors[pos];
}
}
}
{code}
> Allow to disable client-side load-balancing
> -------------------------------------------
>
> Key: ARTEMIS-546
> URL: https://issues.apache.org/jira/browse/ARTEMIS-546
> Project: ActiveMQ Artemis
> Issue Type: New Feature
> Components: Broker
> Affects Versions: 1.3.0
> Reporter: Miroslav Novak
>
> In case when user wants to define client side load-balancing on its own and for each client specify connector to node in cluster to which it must connect then there is no way do it by current load-balancing policies.
> Interface {{ConnectionLoadBalancingPolicy}} does not allow to say to which node to connect based on connector information which was used in configuration connection factory.
> Idea is to allow to disable load-balancing policy. When load-balancing policy is disabled then it will iterate through initial connectors (in sequence as they were configured) to create connection to remote broker.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)