Browse Source

底层通讯方案优化:升级较新版本xxl-rpc,由"JETTY"方案调整为"NETTY_HTTP"方案,执行器内嵌netty-http-server提供服务,调度中心复用容器端口提供服务;

xuxueli 6 years ago
parent
commit
85bf656935

+ 2 - 3
doc/XXL-JOB官方文档.md

@@ -1419,6 +1419,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
 - 5、精简项目,取消第三方依赖,如 commons-collections4 ;
 - 6、底层Log调优,应用正常终止取消异常栈信息打印;
 - 7、交互优化,尽量避免新开页面窗口;仅WebIDE支持新开页,并提供窗口快速关闭按钮;
+- 8、[测试中]底层通讯方案优化:升级较新版本xxl-rpc,由"JETTY"方案调整为"NETTY_HTTP"方案,执行器内嵌netty-http-server提供服务,调度中心复用容器端口提供服务;
 - [迭代中]注册中心优化,实时性注册发现:心跳注册间隔10s,refresh失败则首次注册并立即更新注册信息,心跳类似;30s过期销毁;
 - [迭代中]脚本任务,支持数据参数,新版本仅支持单参数不支持需要兼容;
 - [迭代中]提供执行器Docker镜像;
@@ -1457,9 +1458,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
 - 31、调度中心-执行器通讯模型统一,双向RPC切换为Netty;
 - 32、任务暂停、删除优化,避免quartz delete不完整导致任务脏数据;
 - 32、quartz misfire 配置优化,计划改为0;
-- 33、job通讯调优:
-    - 调度tcp;
-    - 回调http(netty),handler复用mvc(考虑是否双向tcp);
+
 
 
 ## 七、其他

+ 1 - 2
pom.xml

@@ -24,8 +24,7 @@
 		<maven.compiler.target>1.7</maven.compiler.target>
 		<maven.test.skip>true</maven.test.skip>
 
-		<xxl-rpc.version>1.3.1</xxl-rpc.version>
-		<jetty-server.version>9.2.26.v20180806</jetty-server.version>
+		<xxl-rpc.version>1.3.2-SNAPSHOT</xxl-rpc.version>
 
 		<spring-boot.version>1.5.18.RELEASE</spring-boot.version>
 		<mybatis-spring-boot-starter.version>1.3.2</mybatis-spring-boot-starter.version>

+ 0 - 28
xxl-job-admin/pom.xml

@@ -18,34 +18,6 @@
 				<type>pom</type>
 				<scope>import</scope>
 			</dependency>
-
-			<!-- jetty -->
-			<dependency>
-				<groupId>org.eclipse.jetty</groupId>
-				<artifactId>jetty-server</artifactId>
-				<version>${jetty-server.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.eclipse.jetty</groupId>
-				<artifactId>jetty-util</artifactId>
-				<version>${jetty-server.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.eclipse.jetty</groupId>
-				<artifactId>jetty-http</artifactId>
-				<version>${jetty-server.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.eclipse.jetty</groupId>
-				<artifactId>jetty-io</artifactId>
-				<version>${jetty-server.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.eclipse.jetty</groupId>
-				<artifactId>jetty-client</artifactId>
-				<version>${jetty-server.version}</version>
-			</dependency>
-
 		</dependencies>
 	</dependencyManagement>
 

+ 6 - 7
xxl-job-admin/src/main/java/com/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java

@@ -15,10 +15,9 @@ import com.xxl.rpc.remoting.invoker.call.CallType;
 import com.xxl.rpc.remoting.invoker.reference.XxlRpcReferenceBean;
 import com.xxl.rpc.remoting.invoker.route.LoadBalance;
 import com.xxl.rpc.remoting.net.NetEnum;
-import com.xxl.rpc.remoting.net.impl.jetty.server.JettyServerHandler;
+import com.xxl.rpc.remoting.net.impl.servlet.server.ServletServerHandler;
 import com.xxl.rpc.remoting.provider.XxlRpcProviderFactory;
 import com.xxl.rpc.serialize.Serializer;
-import org.eclipse.jetty.server.Request;
 import org.quartz.*;
 import org.quartz.Trigger.TriggerState;
 import org.quartz.impl.triggers.CronTriggerImpl;
@@ -95,12 +94,12 @@ public final class XxlJobDynamicScheduler {
 
 
     // ---------------------- admin rpc provider (no server version) ----------------------
-    private static JettyServerHandler jettyServerHandler;
+    private static ServletServerHandler servletServerHandler;
     private void initRpcProvider(){
         // init
         XxlRpcProviderFactory xxlRpcProviderFactory = new XxlRpcProviderFactory();
         xxlRpcProviderFactory.initConfig(
-                NetEnum.JETTY,
+                NetEnum.NETTY_HTTP,
                 Serializer.SerializeEnum.HESSIAN.getSerializer(),
                 null,
                 0,
@@ -112,13 +111,13 @@ public final class XxlJobDynamicScheduler {
         xxlRpcProviderFactory.addService(AdminBiz.class.getName(), null, XxlJobAdminConfig.getAdminConfig().getAdminBiz());
 
         // jetty handler
-        jettyServerHandler = new JettyServerHandler(xxlRpcProviderFactory);
+        servletServerHandler = new ServletServerHandler(xxlRpcProviderFactory);
     }
     private void stopRpcProvider() throws Exception {
         XxlRpcInvokerFactory.getInstance().stop();
     }
     public static void invokeAdminService(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
-        jettyServerHandler.handle(null, new Request(null, null), request, response);
+        servletServerHandler.handle(null, request, response);
     }
 
 
@@ -139,7 +138,7 @@ public final class XxlJobDynamicScheduler {
 
         // set-cache
         executorBiz = (ExecutorBiz) new XxlRpcReferenceBean(
-                NetEnum.JETTY,
+                NetEnum.NETTY_HTTP,
                 Serializer.SerializeEnum.HESSIAN.getSerializer(),
                 CallType.SYNC,
                 LoadBalance.ROUND,

+ 2 - 2
xxl-job-admin/src/test/java/com/xxl/job/adminbiz/AdminBizTest.java

@@ -33,7 +33,7 @@ public class AdminBizTest {
     public void registryTest() throws Exception {
         addressUrl = addressUrl.replace("http://", "");
         AdminBiz adminBiz = (AdminBiz) new XxlRpcReferenceBean(
-                NetEnum.JETTY,
+                NetEnum.NETTY_HTTP,
                 Serializer.SerializeEnum.HESSIAN.getSerializer(),
                 CallType.SYNC,
                 LoadBalance.ROUND,
@@ -63,7 +63,7 @@ public class AdminBizTest {
     public void registryRemove() throws Exception {
         addressUrl = addressUrl.replace("http://", "");
         AdminBiz adminBiz = (AdminBiz) new XxlRpcReferenceBean(
-                NetEnum.JETTY,
+                NetEnum.NETTY_HTTP,
                 Serializer.SerializeEnum.HESSIAN.getSerializer(),
                 CallType.SYNC,
                 LoadBalance.ROUND,

+ 1 - 1
xxl-job-admin/src/test/java/com/xxl/job/executor/ExecutorBizTest.java

@@ -50,7 +50,7 @@ public class ExecutorBizTest {
         // do remote trigger
         String accessToken = null;
         ExecutorBiz executorBiz = (ExecutorBiz) new XxlRpcReferenceBean(
-                NetEnum.JETTY,
+                NetEnum.NETTY_HTTP,
                 Serializer.SerializeEnum.HESSIAN.getSerializer(),
                 CallType.SYNC,
                 LoadBalance.ROUND,

+ 0 - 20
xxl-job-core/pom.xml

@@ -20,26 +20,6 @@
 			<groupId>com.xuxueli</groupId>
 			<artifactId>xxl-rpc-core</artifactId>
 			<version>${xxl-rpc.version}</version>
-			<exclusions>
-				<exclusion>
-					<groupId>io.netty</groupId>
-					<artifactId>netty-all</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>org.apache.commons</groupId>
-					<artifactId>commons-pool2</artifactId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.jetty</groupId>
-			<artifactId>jetty-server</artifactId>
-			<version>${jetty-server.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.jetty</groupId>
-			<artifactId>jetty-client</artifactId>
-			<version>${jetty-server.version}</version>
 		</dependency>
 
 		<!-- groovy-all -->

+ 2 - 2
xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java

@@ -115,7 +115,7 @@ public class XxlJobExecutor  {
                     String addressUrl = address.concat(AdminBiz.MAPPING);
 
                     AdminBiz adminBiz = (AdminBiz) new XxlRpcReferenceBean(
-                            NetEnum.JETTY,
+                            NetEnum.NETTY_HTTP,
                             Serializer.SerializeEnum.HESSIAN.getSerializer(),
                             CallType.SYNC,
                             LoadBalance.ROUND,
@@ -153,7 +153,7 @@ public class XxlJobExecutor  {
         serviceRegistryParam.put("address", address);
 
         xxlRpcProviderFactory = new XxlRpcProviderFactory();
-        xxlRpcProviderFactory.initConfig(NetEnum.JETTY, Serializer.SerializeEnum.HESSIAN.getSerializer(), ip, port, accessToken, ExecutorServiceRegistry.class, serviceRegistryParam);
+        xxlRpcProviderFactory.initConfig(NetEnum.NETTY_HTTP, Serializer.SerializeEnum.HESSIAN.getSerializer(), ip, port, accessToken, ExecutorServiceRegistry.class, serviceRegistryParam);
 
         // add services
         xxlRpcProviderFactory.addService(ExecutorBiz.class.getName(), null, new ExecutorBizImpl());

+ 0 - 28
xxl-job-executor-samples/xxl-job-executor-sample-springboot/pom.xml

@@ -28,34 +28,6 @@
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
-
-            <!-- jetty -->
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-server</artifactId>
-                <version>${jetty-server.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-util</artifactId>
-                <version>${jetty-server.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-http</artifactId>
-                <version>${jetty-server.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-io</artifactId>
-                <version>${jetty-server.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-client</artifactId>
-                <version>${jetty-server.version}</version>
-            </dependency>
-
         </dependencies>
     </dependencyManagement>