Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature: support ConsistentHashLoadBalance #2080

Merged
merged 37 commits into from
Aug 5, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
dfee16c
feature: support ConsistentHashLoadBalance
ph3636 Dec 23, 2019
015c8a5
feature: support ConsistentHashLoadBalance
ph3636 Dec 23, 2019
25fbd10
feature: support ConsistentHashLoadBalance
ph3636 Dec 23, 2019
60112cc
feature: support ConsistentHashLoadBalance
ph3636 Dec 24, 2019
99a94f0
Merge branch 'develop' into ConsistentHashLoadBalance
ph3636 Jan 10, 2020
b32edd9
Merge branch 'develop' into ConsistentHashLoadBalance
zjinlei Jan 23, 2020
97f99a2
Merge branch 'develop' into ConsistentHashLoadBalance
ph3636 Feb 3, 2020
cf749a5
Merge branch 'develop' into ConsistentHashLoadBalance
zjinlei Feb 14, 2020
8cadcf0
Merge branch 'develop' into ConsistentHashLoadBalance
zjinlei Feb 17, 2020
493119d
Merge branch 'develop' into ConsistentHashLoadBalance
zjinlei Feb 20, 2020
ca58950
Merge branch 'develop' into ConsistentHashLoadBalance
zjinlei Feb 22, 2020
5a4a0fa
Merge branch 'develop' into ConsistentHashLoadBalance
zjinlei Feb 28, 2020
3c8a7ca
use camel style
ph3636 Mar 1, 2020
cd85a9a
Merge branch 'develop' into ConsistentHashLoadBalance
ph3636 Mar 1, 2020
3598505
Merge branch 'develop' into ConsistentHashLoadBalance
zjinlei Mar 5, 2020
f812304
Merge branch 'develop' into ConsistentHashLoadBalance
zjinlei Mar 15, 2020
b7c805a
Merge branch 'develop' into ConsistentHashLoadBalance
zjinlei Apr 10, 2020
e032437
Merge branch 'develop' into ConsistentHashLoadBalance
Jun 29, 2020
9c57e7f
feature: support ConsistentHashLoadBalance
Jun 29, 2020
9e0d5ca
feature: support ConsistentHashLoadBalance
Jun 29, 2020
d27ee2f
feature: support ConsistentHashLoadBalance
Jun 29, 2020
bd7a068
feature: support ConsistentHashLoadBalance
Jun 29, 2020
717cdbd
Merge branch 'develop' into ConsistentHashLoadBalance
l81893521 Jul 9, 2020
2cd12b3
Merge branch 'develop' into ConsistentHashLoadBalance
Jul 20, 2020
df04b43
feature: support ConsistentHashLoadBalance
Jul 20, 2020
879472f
feature: support ConsistentHashLoadBalance
Jul 21, 2020
235e82e
Merge branch 'develop' into ConsistentHashLoadBalance
l81893521 Jul 27, 2020
d01fa1d
Merge branch 'develop' into ConsistentHashLoadBalance
slievrly Jul 28, 2020
ae15be8
feature: support ConsistentHashLoadBalance
Jul 28, 2020
efb9d58
Merge remote-tracking branch 'origin/ConsistentHashLoadBalance' into …
Jul 28, 2020
36e58a2
feature: support ConsistentHashLoadBalance
Jul 28, 2020
480f623
feature: support ConsistentHashLoadBalance
Jul 28, 2020
d415ada
feature: support ConsistentHashLoadBalance
Jul 28, 2020
6f05e42
move DefaultValues to common module
Jul 30, 2020
e99cd54
Merge branch 'develop' into ConsistentHashLoadBalance
Aug 5, 2020
72682ea
move DefaultValues to common module
Aug 5, 2020
9204c06
move DefaultValues to common module
Aug 5, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
use camel style
  • Loading branch information
ph3636 committed Mar 1, 2020
commit 3c8a7caf7e5b71f6b8eaa8cd6249274833bc5721
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,4 @@ public final class ConfigurationKeys {
* The constant FILE_ROOT_TYPE.
*/
public static final String FILE_ROOT_TYPE = "type";
/**
* The constant LOAD_BALANCE.
*/
public static final String LOAD_BALANCE = FILE_ROOT_REGISTRY + FILE_CONFIG_SPLIT_CHAR + "load-balance";
/**
* The constant VIRTUAL_NODES.
*/
public static final String VIRTUAL_NODES = FILE_ROOT_REGISTRY + FILE_CONFIG_SPLIT_CHAR + "load-balance-virtual-nodes";
}
4 changes: 2 additions & 2 deletions config/seata-config-core/src/main/resources/registry.conf
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "file"
load-balance = "RandomLoadBalance"
load-balance-virtual-nodes = 10
loadBalance = "RandomLoadBalance"
loadBalanceVirtualNodes = 10

nacos {
serverAddr = "localhost"
Expand Down
4 changes: 2 additions & 2 deletions config/seata-config-core/src/test/resources/registry.conf
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "file"
load-balance = "RandomLoadBalance"
load-balance-virtual-nodes = 10
loadBalance = "RandomLoadBalance"
loadBalanceVirtualNodes = 10

nacos {
serverAddr = "localhost"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,6 @@
*/
package io.seata.discovery.loadbalance;

import io.seata.common.loader.LoadLevel;
import io.seata.config.ConfigurationFactory;
import io.seata.config.ConfigurationKeys;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
Expand All @@ -28,6 +24,12 @@
import java.util.StringJoiner;
import java.util.TreeMap;

import io.seata.common.loader.LoadLevel;
import io.seata.config.ConfigurationFactory;

import static io.seata.config.ConfigurationKeys.FILE_CONFIG_SPLIT_CHAR;
import static io.seata.config.ConfigurationKeys.FILE_ROOT_REGISTRY;

/**
* The type consistent hash load balance.
*
Expand All @@ -36,12 +38,17 @@
@LoadLevel(name = "ConsistentHashLoadBalance", order = 3)
public class ConsistentHashLoadBalance extends AbstractLoadBalance {

/**
* The constant VIRTUAL_NODES.
*/
private static final String VIRTUAL_NODES = FILE_ROOT_REGISTRY + FILE_CONFIG_SPLIT_CHAR + "loadBalanceVirtualNodes";

@Override
protected <T> T doSelect(List<T> invokers) {
List<T> temp = new ArrayList<>(invokers);
Collections.shuffle(temp);
return new ConsistentHashSelector<>(invokers, ConfigurationFactory.CURRENT_FILE_INSTANCE.getInt(
ConfigurationKeys.VIRTUAL_NODES, 10)).select(getObjectKey(temp));
VIRTUAL_NODES, 10)).select(getObjectKey(temp));
}

private <T> String getObjectKey(List<T> invokers) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@

import io.seata.common.loader.EnhancedServiceLoader;
import io.seata.config.ConfigurationFactory;
import io.seata.config.ConfigurationKeys;

import static io.seata.config.ConfigurationKeys.FILE_CONFIG_SPLIT_CHAR;
import static io.seata.config.ConfigurationKeys.FILE_ROOT_REGISTRY;

/**
* The type Load balance factory.
Expand All @@ -26,6 +28,11 @@
*/
public class LoadBalanceFactory {

/**
* The constant LOAD_BALANCE.
*/
private static final String LOAD_BALANCE = FILE_ROOT_REGISTRY + FILE_CONFIG_SPLIT_CHAR + "loadBalance";

/**
* The load balance.
*/
Expand All @@ -41,7 +48,7 @@ public static LoadBalance getInstance() {
synchronized (LoadBalanceFactory.class) {
if (loadBalance == null) {
loadBalance = EnhancedServiceLoader.load(LoadBalance.class,
ConfigurationFactory.CURRENT_FILE_INSTANCE.getConfig(ConfigurationKeys.LOAD_BALANCE));
ConfigurationFactory.CURRENT_FILE_INSTANCE.getConfig(LOAD_BALANCE));
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions script/client/conf/registry.conf
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "file"
load-balance = "RandomLoadBalance"
load-balance-virtual-nodes = 10
loadBalance = "RandomLoadBalance"
loadBalanceVirtualNodes = 10

nacos {
serverAddr = "localhost"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "file"
load-balance = "RandomLoadBalance"
load-balance-virtual-nodes = 10
loadBalance = "RandomLoadBalance"
loadBalanceVirtualNodes = 10

nacos {
serverAddr = "localhost"
Expand Down
4 changes: 2 additions & 2 deletions server/src/main/resources/registry.conf
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "file"
load-balance = "RandomLoadBalance"
load-balance-virtual-nodes = 10
loadBalance = "RandomLoadBalance"
loadBalanceVirtualNodes = 10

nacos {
serverAddr = "localhost"
Expand Down
4 changes: 2 additions & 2 deletions test/src/test/resources/registry.conf
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "file"
load-balance = "RandomLoadBalance"
load-balance-virtual-nodes = 10
loadBalance = "RandomLoadBalance"
loadBalanceVirtualNodes = 10

nacos {
serverAddr = "localhost"
Expand Down