Skip to content

Commit 84af836

Browse files
authored
Merge pull request #20 from codingapi/tx-lcn-foxdd
Tx lcn foxdd
2 parents 35cd6e6 + 305d4f3 commit 84af836

4 files changed

Lines changed: 25 additions & 13 deletions

File tree

transaction-springcloud/src/main/java/com/codingapi/ribbon/loadbalancer/LcnLoadBalancerRule.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package com.codingapi.ribbon.loadbalancer;
22

3+
4+
import com.alibaba.fastjson.JSONObject;
5+
36
import com.codingapi.tx.aop.bean.TxTransactionLocal;
47
import com.lorne.core.framework.utils.encode.MD5Util;
58
import com.netflix.loadbalancer.Server;

transaction-springcloud/src/main/java/com/codingapi/ribbon/loadbalancer/LcnNoOpLoadBalancerProxy.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
import com.netflix.loadbalancer.NoOpLoadBalancer;
77
import com.netflix.loadbalancer.Server;
88

9+
import java.util.ArrayList;
10+
import java.util.List;
11+
912
/**
1013
* created by foxdd 2017-12-05
1114
*/
@@ -22,7 +25,10 @@ public LcnNoOpLoadBalancerProxy(){
2225
@Override
2326
public Server chooseServer(Object key){
2427
logger.info("enter chooseServer method, key:" + key);
25-
return lcnLoadBalancerRule.proxy(getAllServers(),super.chooseServer(key));
28+
29+
List<Server> serverList = new ArrayList<Server>();
30+
return lcnLoadBalancerRule.proxy(serverList, super.chooseServer(key));
31+
2632
}
2733

2834
}

transaction-springcloud/src/main/java/com/codingapi/ribbon/loadbalancer/LcnRibbonConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class LcnRibbonConfiguration {
2929
public ILoadBalancer ribbonLoadBalancer(IClientConfig config,
3030
ServerList<Server> serverList, ServerListFilter<Server> serverListFilter,
3131
IRule rule, IPing ping, ServerListUpdater serverListUpdater) {
32-
return new LcnZoneAwareLoadBalancerProxy<>(config, rule, ping, serverList,
32+
return new LcnZoneAwareLoadBalancerProxy(config, rule, ping, serverList,
3333
serverListFilter, serverListUpdater);
3434
}
3535

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,39 @@
11
package com.codingapi.ribbon.loadbalancer;
22

3+
import com.netflix.client.config.IClientConfig;
4+
import com.netflix.loadbalancer.*;
35
import org.slf4j.Logger;
46
import org.slf4j.LoggerFactory;
57

6-
import com.netflix.client.config.IClientConfig;
7-
import com.netflix.loadbalancer.IPing;
8-
import com.netflix.loadbalancer.IRule;
9-
import com.netflix.loadbalancer.Server;
10-
import com.netflix.loadbalancer.ServerList;
11-
import com.netflix.loadbalancer.ServerListFilter;
12-
import com.netflix.loadbalancer.ServerListUpdater;
13-
import com.netflix.loadbalancer.ZoneAwareLoadBalancer;
8+
import java.util.ArrayList;
9+
import java.util.List;
1410

1511
/**
1612
* created by foxdd 2017-12-05
1713
*/
18-
public class LcnZoneAwareLoadBalancerProxy<T extends Server> extends ZoneAwareLoadBalancer<T> {
14+
public class LcnZoneAwareLoadBalancerProxy extends ZoneAwareLoadBalancer<Server> {
1915

2016
private Logger logger = LoggerFactory.getLogger(LcnZoneAwareLoadBalancerProxy.class);
2117

2218
LcnLoadBalancerRule lcnLoadBalancerRule = new LcnLoadBalancerRule();
2319

2420
public LcnZoneAwareLoadBalancerProxy(IClientConfig clientConfig, IRule rule,
25-
IPing ping, ServerList<T> serverList, ServerListFilter<T> filter,
21+
IPing ping, ServerList<Server> serverList, ServerListFilter<Server> filter,
2622
ServerListUpdater serverListUpdater) {
2723
super(clientConfig, rule, ping, serverList, filter, serverListUpdater);
2824
}
2925

3026
@Override
3127
public Server chooseServer(Object key){
3228
logger.info("enter chooseServer method, key:" + key);
33-
return lcnLoadBalancerRule.proxy(getAllServers(),super.chooseServer(key));
29+
30+
List<Server> serverList = new ArrayList<Server>();
31+
//获取处理之后的serverlist
32+
serverList = super.getServerListImpl().getUpdatedListOfServers();
33+
//获取过滤之后的serverlist
34+
serverList = super.getFilter().getFilteredListOfServers(serverList);
35+
return lcnLoadBalancerRule.proxy(serverList, super.chooseServer(key));
36+
3437
}
3538

3639
}

0 commit comments

Comments
 (0)