Browse Source

Merge pull request #581 from Baoqi/es_combined_server

close 579, 支持一个server启动所有组件
pull/2/head
乔占卫 5 years ago committed by GitHub
parent
commit
4fdea1d9e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      escheduler-api/pom.xml
  2. 54
      escheduler-api/src/main/java/cn/escheduler/api/CombinedApplicationServer.java
  3. 1
      escheduler-api/src/main/java/cn/escheduler/api/configuration/AppConfiguration.java
  4. 54
      escheduler-api/src/main/resources/combined_logback.xml
  5. 2
      escheduler-server/src/main/java/cn/escheduler/server/rpc/LoggerServer.java
  6. 26
      escheduler-ui/build/webpack.config.combined.js
  7. 3
      escheduler-ui/package.json
  8. 8
      escheduler-ui/src/view/common/meta.inc
  9. 2
      escheduler-ui/src/view/common/outro.inc
  10. 8
      package.xml

8
escheduler-api/pom.xml

@ -9,9 +9,11 @@
<packaging>jar</packaging>
<dependencies>
<dependency>
<dependency>
<groupId>cn.analysys</groupId>
<artifactId>escheduler-alert</artifactId>
</dependency>
<dependency>
<groupId>cn.analysys</groupId>
<artifactId>escheduler-server</artifactId>
<exclusions>

54
escheduler-api/src/main/java/cn/escheduler/api/CombinedApplicationServer.java

@ -0,0 +1,54 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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 cn.escheduler.api;
import cn.escheduler.alert.AlertServer;
import cn.escheduler.dao.ProcessDao;
import cn.escheduler.server.master.MasterServer;
import cn.escheduler.server.rpc.LoggerServer;
import cn.escheduler.server.worker.WorkerServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication
@ServletComponentScan
@ComponentScan("cn.escheduler")
@EnableSwagger2
public class CombinedApplicationServer extends SpringBootServletInitializer {
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext context = SpringApplication.run(ApiApplicationServer.class, args);
ProcessDao processDao = context.getBean(ProcessDao.class);
MasterServer master = new MasterServer(processDao);
master.run(processDao);
WorkerServer workerServer = new WorkerServer();
workerServer.run();
LoggerServer server = new LoggerServer();
server.start();
AlertServer alertServer = AlertServer.getInstance();
alertServer.start();
}
}

1
escheduler-api/src/main/java/cn/escheduler/api/configuration/AppConfiguration.java

@ -84,6 +84,7 @@ public class AppConfiguration implements WebMvcConfigurer {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
registry.addResourceHandler("/ui/**").addResourceLocations("file:ui/");
}
@Override

54
escheduler-api/src/main/resources/combined_logback.xml

@ -0,0 +1,54 @@
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
<configuration scan="true" scanPeriod="120 seconds">
<property name="log.base" value="logs"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%highlight([%level]) %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{10}:[%line] - %msg%n
</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="TASKLOGFILE" class="cn.escheduler.server.worker.log.TaskLogAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<filter class="cn.escheduler.server.worker.log.TaskLogFilter"></filter>
<file>${log.base}/{processDefinitionId}/{processInstanceId}/{taskInstanceId}.log</file>
<encoder>
<pattern>
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
</pattern>
<charset>UTF-8</charset>
</encoder>
<append>true</append>
</appender>
<appender name="COMBINEDLOGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.base}/escheduler-combined.log</file>
<filter class="cn.escheduler.server.worker.log.WorkerLogFilter">
<level>INFO</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.base}/escheduler-combined.%d{yyyy-MM-dd_HH}.%i.log</fileNamePattern>
<maxHistory>168</maxHistory>
<maxFileSize>200MB</maxFileSize>
</rollingPolicy>
     
<encoder>
<pattern>
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
</pattern>
<charset>UTF-8</charset>
</encoder>
  
</appender>
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="TASKLOGFILE"/>
<appender-ref ref="COMBINEDLOGFILE"/>
</root>
</configuration>

2
escheduler-server/src/main/java/cn/escheduler/server/rpc/LoggerServer.java

@ -44,7 +44,7 @@ public class LoggerServer {
*/
private Server server;
private void start() throws IOException {
public void start() throws IOException {
/* The port on which the server should run */
int port = Constants.RPC_PORT;
server = ServerBuilder.forPort(port)

26
escheduler-ui/build/webpack.config.combined.js

@ -0,0 +1,26 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
const merge = require('webpack-merge')
const prodConfig = require('./webpack.config.prod')
const config = merge.smart(prodConfig, {
output: {
publicPath: '/escheduler/ui/'
}
})
module.exports = config

3
escheduler-ui/package.json

@ -10,7 +10,8 @@
"lint": "standard \"**/*.{js,vue}\"",
"lint:fix": "standard \"**/*.{js,vue}\" --fix",
"start": "npm run dev",
"combo": "node ./build/combo.js"
"combo": "node ./build/combo.js",
"build:combined": "npm run clean && cross-env NODE_ENV=production webpack --config ./build/webpack.config.combined.js"
},
"dependencies": {
"autoprefixer": "^9.1.0",

8
escheduler-ui/src/view/common/meta.inc

@ -11,12 +11,12 @@
<meta name="theme-color" content="#4a8dee">
<meta name="msapplication-navbutton-color" content="#4a8dee">
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1">
<link rel="shortcut icon" href="/images/favicon.ico"/>
<link href="/combo/1.0.0/base.css?v1.0.0.1" rel="stylesheet">
<link href="/combo/1.0.0/3rd.css?v1.0.0.1" rel="stylesheet">
<link rel="shortcut icon" href="images/favicon.ico"/>
<link href="combo/1.0.0/base.css?v1.0.0.1" rel="stylesheet">
<link href="combo/1.0.0/3rd.css?v1.0.0.1" rel="stylesheet">
<!--[if lt IE 9]>
<script src="/combo/1.0.0/es5.js"></script>
<script src="combo/1.0.0/es5.js"></script>
<![endif]-->
<script>

2
escheduler-ui/src/view/common/outro.inc

@ -2,7 +2,7 @@
<!--<script src="https://s1.analysys.cn/libs/??jqueryui/1.12.1/jquery-ui.min.js,twitter-bootstrap/3.3.7/js/bootstrap.min.js,jsPlumb/2.8.5/js/jsplumb.min.js"></script> -->
<!--<script src="https://s1.analysys.cn/libs/??highlight.js/9.13.1/highlight.min.js,element-ui/2.4.9/index.js,clipboard.js/2.0.1/clipboard.min.js,d3/3.3.6/d3.min.js,dayjs/1.7.8/dayjs.min.js"></script> -->
<script src="/combo/1.0.0/3rd.js?v1.0.0.1" type="text/javascript"></script>
<script src="combo/1.0.0/3rd.js?v1.0.0.1" type="text/javascript"></script>

8
package.xml

@ -34,6 +34,14 @@
<outputDirectory>.</outputDirectory>
</fileSet>
<fileSet>
<directory>escheduler-ui/dist</directory>
<includes>
<include>**/*.*</include>
</includes>
<outputDirectory>./ui</outputDirectory>
</fileSet>
<fileSet>
<directory>sql</directory>
<includes>

Loading…
Cancel
Save