fix router concurrent bug&fix spring-retry circuit breaker not work bug (#679)
parent
89ffc3d77f
commit
8c3f1fece7
@ -1,2 +1,4 @@
|
|||||||
# Change Log
|
# 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