Commit 757c27fd by Nepxion

增加负载均衡自定义扩展机制

parent 66ca58f0
......@@ -24,11 +24,20 @@ public class LoadBalanceListenerExecutor {
@Autowired
private VersionFilterLoadBalanceListener versionFilterLoadBalanceListener;
@Autowired
private List<LoadBalanceListener> loadBalanceListenerList;
private ZoneAwareLoadBalancer<?> loadBalancer;
public void onGetServers(String serviceId, List<? extends Server> servers) {
hostFilterLoadBalanceListener.onGetServers(serviceId, servers);
versionFilterLoadBalanceListener.onGetServers(serviceId, servers);
for (LoadBalanceListener loadBalanceListener : loadBalanceListenerList) {
if (loadBalanceListener != hostFilterLoadBalanceListener && loadBalanceListener != versionFilterLoadBalanceListener) {
loadBalanceListener.onGetServers(serviceId, servers);
}
}
}
public ZoneAwareLoadBalancer<?> getLoadBalancer() {
......
......@@ -16,6 +16,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import com.nepxion.discovery.plugin.example.extension.MyDiscoveryListener;
import com.nepxion.discovery.plugin.example.extension.MyLoadBalanceListener;
import com.nepxion.discovery.plugin.example.extension.MyRegisterListener;
import com.nepxion.discovery.plugin.example.extension.MySubscriber;
......@@ -40,6 +41,11 @@ public class DiscoveryApplicationA1 {
}
@Bean
public MyLoadBalanceListener myLoadBalanceListener() {
return new MyLoadBalanceListener();
}
@Bean
public MySubscriber mySubscriber() {
return new MySubscriber();
}
......
......@@ -18,11 +18,11 @@ import com.nepxion.discovery.plugin.framework.listener.discovery.AbstractDiscove
public class MyDiscoveryListener extends AbstractDiscoveryListener {
@Override
public void onGetInstances(String serviceId, List<ServiceInstance> instances) {
System.out.println("========== getInstances() 被触发:serviceId=" + serviceId + ", instances=" + instances + " ==========");
// System.out.println("========== Discovery Listener :: getInstances()被触发, serviceId=" + serviceId + ", instances=" + instances + " ==========");
}
@Override
public void onGetServices(List<String> services) {
// System.out.println("========== getServices() 被触发:services=" + services + " ==========");
// System.out.println("========== Discovery Listener :: getServices()被触发, services=" + services + " ==========");
}
}
\ No newline at end of file
package com.nepxion.discovery.plugin.example.extension;
/**
* <p>Title: Nepxion Discovery</p>
* <p>Description: Nepxion Discovery</p>
* <p>Copyright: Copyright (c) 2017-2050</p>
* <p>Company: Nepxion</p>
* @author Haojun Ren
* @version 1.0
*/
import java.util.List;
import com.nepxion.discovery.plugin.framework.listener.loadbalance.AbstractLoadBalanceListener;
import com.netflix.loadbalancer.Server;
public class MyLoadBalanceListener extends AbstractLoadBalanceListener {
@Override
public void onGetServers(String serviceId, List<? extends Server> servers) {
// System.out.println("========== LoadBalance Listener :: getServers()被触发, serviceId=" + serviceId + ", servers=" + servers + " ==========");
}
}
\ No newline at end of file
......@@ -16,21 +16,21 @@ import com.nepxion.discovery.plugin.framework.listener.register.AbstractRegister
public class MyRegisterListener extends AbstractRegisterListener {
@Override
public void onRegister(Registration registration) {
System.out.println("========== register() 被触发:serviceId=" + registration.getServiceId());
// System.out.println("========== Register Listener :: register()被触发, serviceId=" + registration.getServiceId());
}
@Override
public void onDeregister(Registration registration) {
System.out.println("========== deregister() 被触发:serviceId=" + registration.getServiceId());
// System.out.println("========== Register Listener :: deregister()被触发, serviceId=" + registration.getServiceId());
}
@Override
public void onSetStatus(Registration registration, String status) {
System.out.println("========== setStatus() 被触发:serviceId=" + registration.getServiceId() + ", status=" + status);
// System.out.println("========== Register Listener :: setStatus()被触发, serviceId=" + registration.getServiceId() + ", status=" + status);
}
@Override
public void onClose() {
System.out.println("========== close() 被触发 ==========");
// System.out.println("========== Register Listener :: close()被触发 ==========");
}
}
\ No newline at end of file
......@@ -17,6 +17,6 @@ import com.nepxion.eventbus.annotation.EventBus;
public class MySubscriber {
@Subscribe
public void onRegisterFailure(RegisterFailureEvent registerFailureEvent) {
System.out.println("========== 注册失败eventType=" + registerFailureEvent.getEventType() + ", eventDescription=" + registerFailureEvent.getEventDescription() + ", serviceId=" + registerFailureEvent.getServiceId() + ", host=" + registerFailureEvent.getHost() + ", port=" + registerFailureEvent.getPort());
System.out.println("========== 注册失败, eventType=" + registerFailureEvent.getEventType() + ", eventDescription=" + registerFailureEvent.getEventDescription() + ", serviceId=" + registerFailureEvent.getServiceId() + ", host=" + registerFailureEvent.getHost() + ", port=" + registerFailureEvent.getPort());
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment