fix router concurrent bug&fix spring-retry circuit breaker not work bug (#679)
parent
89ffc3d77f
commit
8c3f1fece7
@ -1,2 +1,4 @@
|
||||
# Change Log
|
||||
---
|
||||
|
||||
- [fix router concurrent bug&fix spring-retry circuit breaker not work bug](https://github.com/Tencent/spring-cloud-tencent/pull/679)
|
||||
|
@ -1,73 +0,0 @@
|
||||
/*
|
||||
* Tencent is pleased to support the open source community by making Spring Cloud Tencent available.
|
||||
*
|
||||
* Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.
|
||||
*
|
||||
* Licensed under the BSD 3-Clause License (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed
|
||||
* under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
||||
* CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package com.tencent.cloud.polaris.router;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.netflix.loadbalancer.ILoadBalancer;
|
||||
import com.netflix.loadbalancer.Server;
|
||||
|
||||
/**
|
||||
* Simple load balancer only for getting and setting servers.
|
||||
*
|
||||
* @author lepdou 2022-05-17
|
||||
*/
|
||||
public class SimpleLoadBalancer implements ILoadBalancer {
|
||||
private List<Server> servers;
|
||||
|
||||
@Override
|
||||
public void addServers(List<Server> newServers) {
|
||||
this.servers = newServers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Server chooseServer(Object key) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void markServerDown(Server server) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Server> getServerList(boolean availableOnly) {
|
||||
if (servers == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return Collections.unmodifiableList(servers);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Server> getReachableServers() {
|
||||
if (servers == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return Collections.unmodifiableList(servers);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Server> getAllServers() {
|
||||
if (servers == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return Collections.unmodifiableList(servers);
|
||||
}
|
||||
}
|
@ -1,72 +0,0 @@
|
||||
/*
|
||||
* Tencent is pleased to support the open source community by making Spring Cloud Tencent available.
|
||||
*
|
||||
* Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.
|
||||
*
|
||||
* Licensed under the BSD 3-Clause License (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed
|
||||
* under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
||||
* CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package com.tencent.cloud.polaris.router;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import com.netflix.loadbalancer.Server;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
/**
|
||||
* test for {@link SimpleLoadBalancer}.
|
||||
*
|
||||
* @author lepdou 2022-05-26
|
||||
*/
|
||||
public class SimpleLoadBalancerTest {
|
||||
|
||||
@Test
|
||||
public void testSetterGetter() {
|
||||
List<Server> servers = new LinkedList<>();
|
||||
servers.add(Mockito.mock(Server.class));
|
||||
servers.add(Mockito.mock(Server.class));
|
||||
servers.add(Mockito.mock(Server.class));
|
||||
servers.add(Mockito.mock(Server.class));
|
||||
servers.add(Mockito.mock(Server.class));
|
||||
|
||||
SimpleLoadBalancer simpleLoadBalancer = new SimpleLoadBalancer();
|
||||
|
||||
simpleLoadBalancer.addServers(servers);
|
||||
|
||||
List<Server> allServers = simpleLoadBalancer.getAllServers();
|
||||
List<Server> reachableServers = simpleLoadBalancer.getReachableServers();
|
||||
List<Server> availableServers = simpleLoadBalancer.getServerList(true);
|
||||
|
||||
Assert.assertEquals(servers.size(), allServers.size());
|
||||
Assert.assertEquals(servers.size(), reachableServers.size());
|
||||
Assert.assertEquals(servers.size(), availableServers.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetNull() {
|
||||
SimpleLoadBalancer simpleLoadBalancer = new SimpleLoadBalancer();
|
||||
|
||||
simpleLoadBalancer.addServers(null);
|
||||
|
||||
List<Server> allServers = simpleLoadBalancer.getAllServers();
|
||||
List<Server> reachableServers = simpleLoadBalancer.getReachableServers();
|
||||
List<Server> availableServers = simpleLoadBalancer.getServerList(true);
|
||||
|
||||
Assert.assertEquals(0, allServers.size());
|
||||
Assert.assertEquals(0, reachableServers.size());
|
||||
Assert.assertEquals(0, availableServers.size());
|
||||
}
|
||||
}
|
Loading…
Reference in new issue