Commit bcec9771 by 房斌

1解决dubbo tomcat 加载类的判断。没有使用不加载 2执行顺序 tomcat优先dubbo 停机

parent 5f09c068
......@@ -4,4 +4,5 @@ public interface StopService <T>{
public T stop();
}
......@@ -40,7 +40,7 @@ public class DubboCustomerDownHock extends AbstractStop {
public ExecutorDetail stop() {
ExecutorDetail detail = new ExecutorDetail();
detail.setBeginTime(DateUtil.getDateTime());
detail.setServiceName("dubboDownHock1013");
detail.setServiceName("dubboDownHock1025");
List<String> str = new ArrayList<String>();
detail.setDetail(str);
detail.setCode(0);
......
......@@ -5,8 +5,6 @@ import com.secoo.mall.common.util.string.StringUtil;
import com.secoo.mall.common.core.bean.gracefulshowtdownBean.ExecutorDetail;
import com.secoo.mall.dubbo.service.AbstractStop;
import org.apache.catalina.connector.Connector;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executor;
......@@ -14,8 +12,7 @@ import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
//springboot 容器关闭
@Component
public class ServletConnectShoutDownHock extends AbstractStop {
public class TomcatConnectShoutDownHock extends AbstractStop {
private volatile Connector connector;
public Connector getConnector() {
......@@ -67,6 +64,6 @@ public class ServletConnectShoutDownHock extends AbstractStop {
@Override
public Integer getHandleTypeOrder() {
return 1;
return -1;
}
}
......@@ -5,15 +5,17 @@ import com.secoo.mall.dubbo.monitor.config.ConfigCenter;
import com.secoo.mall.dubbo.monitor.dubbo.service.ProviderService;
import com.secoo.mall.dubbo.monitor.dubbo.service.RegistryServerSync;
import com.secoo.mall.dubbo.monitor.dubbo.service.impl.ProviderServiceImpl;
import com.secoo.mall.dubbo.service.GracefullyShoutDown;
import com.secoo.mall.dubbo.service.TomcatGracefullyShutDown;
import com.secoo.mall.dubbo.service.impl.DubboCustomerDownHock;
import com.secoo.mall.dubbo.service.DubboUpdata;
import com.secoo.mall.dubbo.service.impl.ServletConnectShoutDownHock;
import com.secoo.mall.dubbo.service.impl.TomcatConnectShoutDownHock;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.apache.dubbo.registry.Registry;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
......@@ -23,18 +25,15 @@ import org.springframework.context.annotation.DependsOn;
public class MatrixGracefulShutDownAutoConfiguration {
@Bean
@ConditionalOnClass(RegistryServerSync.class)
@ConditionalOnExpression("!T(org.springframework.util.StringUtils).isEmpty('${dubbo.registry.address:}')")
ProviderService createProviderService(Registry registry, RegistryServerSync sync) {
return new ProviderServiceImpl(registry,sync);
}
@Bean
ServletConnectShoutDownHock createServletConnectShoutDownHock() {
return new ServletConnectShoutDownHock();
}
@Bean
@ConditionalOnBean(ConfigCenter.class)
@ConditionalOnExpression("!T(org.springframework.util.StringUtils).isEmpty('${dubbo.registry.address:}')")
@ConditionalOnClass(ConfigCenter.class)
@DependsOn("configCenter")
UpDatas dubboUpdata( ConfigCenter configCenter){
DubboUpdata transport= new DubboUpdata();
......@@ -46,27 +45,52 @@ public class MatrixGracefulShutDownAutoConfiguration {
}
@Bean
public GracefullyShoutDown createGraceObject(ServletConnectShoutDownHock servletConnectShoutDownHock,ProviderService providerService,UpDatas dubboUpdata) {
return new GracefullyShoutDown( servletConnectShoutDownHock, providerService, dubboUpdata);
@ConditionalOnExpression("!T(org.springframework.util.StringUtils).isEmpty('${dubbo.registry.address:}')")
DubboCustomerDownHock createDubboConsumerDownHock(ProviderService providerService) {
return new DubboCustomerDownHock(providerService);
}
@Bean
@ConditionalOnExpression("!T(org.springframework.util.StringUtils).isEmpty('${dubbo.registry.address:}')")
public RegistryServerSync createSynObject(Registry registry) {
return new RegistryServerSync(registry);
}
@Bean
DubboCustomerDownHock createDubboConsumerDownHock(ProviderService providerService) {
return new DubboCustomerDownHock(providerService);
}
@Bean
@ConditionalOnExpression("!T(org.springframework.util.StringUtils).isEmpty('${dubbo.registry.address:}')")
ConfigCenter configCenter(){
return new ConfigCenter();
}
@Bean
@ConditionalOnClass(TomcatConnectorCustomizer.class)
TomcatConnectShoutDownHock createServletConnectShoutDownHock() {
return new TomcatConnectShoutDownHock();
}
@Bean
@ConditionalOnClass(TomcatConnectShoutDownHock.class)
public TomcatGracefullyShutDown createSpringbootTomcatInit(TomcatConnectShoutDownHock tomcatConnectShoutDownHock){
return new TomcatGracefullyShutDown(tomcatConnectShoutDownHock);
}
// @Bean
// public GracefullyShoutDown createGraceObject(TomcatConnectShoutDownHock servletConnectShoutDownHock, ProviderService providerService, UpDatas dubboUpdata) {
// return new GracefullyShoutDown( servletConnectShoutDownHock, providerService, dubboUpdata);
// }
@Bean
@ConditionalOnExpression("!T(org.springframework.util.StringUtils).isEmpty('${dubbo.registry.address:}')")
public GracefullyShoutDown createGraceObject( UpDatas dubboUpdata) {
return new GracefullyShoutDown(dubboUpdata);
}
}
\ No newline at end of file
......@@ -8,7 +8,6 @@ import com.secoo.mall.dubbo.monitor.dubbo.service.ProviderService;
import com.secoo.mall.dubbo.monitor.dubbo.service.RegistryServerSync;
import com.secoo.mall.dubbo.monitor.dubbo.service.impl.ProviderServiceImpl;
import com.secoo.mall.dubbo.service.ServletConnectShoutDownHock;
import com.secoo.mall.dubbo.swagger.annotations.EnableDubboSwagger;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.beans.factory.annotation.Value;
......
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