提交 9b0b919f 编写于 作者: P peng-yongsheng

Break server manager module into two modules: grpc manager module and jetty manager module.

上级 be7b774a
......@@ -58,18 +58,20 @@
<version>${project.version}</version>
</dependency>
<!-- cluster provider -->
<!-- server manager provider -->
<!-- grpc manager provider -->
<dependency>
<groupId>org.skywalking</groupId>
<artifactId>collector-grpc-manager-provider</artifactId>
<version>${project.version}</version>
</dependency>
<!-- grpc manager provider -->
<!-- jetty manager provider -->
<dependency>
<groupId>org.skywalking</groupId>
<artifactId>collector-jetty-manager-provider</artifactId>
<version>${project.version}</version>
</dependency>
<!-- server manager provider -->
<!-- jetty manager provider -->
<dependency>
<groupId>org.skywalking</groupId>
<artifactId>collector-ui-jetty-provider</artifactId>
......
......@@ -23,8 +23,9 @@ ui:
host: localhost
port: 12800
context_path: /
server_manager:
jetty_manager:
jetty:
gRPC_manager:
gRPC:
#collector_inside:
# grpc:
......
......@@ -21,13 +21,13 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>apm-collector-server-manager</artifactId>
<artifactId>apm-collector-grpc-manager</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>collector-server-manager-define</artifactId>
<artifactId>collector-grpc-manager-define</artifactId>
<packaging>jar</packaging>
</project>
\ No newline at end of file
......@@ -16,24 +16,23 @@
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.server.manager;
package org.skywalking.apm.collector.grpc.manager;
import org.skywalking.apm.collector.core.module.Module;
import org.skywalking.apm.collector.server.manager.service.GRPCServerManagerService;
import org.skywalking.apm.collector.server.manager.service.JettyServerManagerService;
import org.skywalking.apm.collector.grpc.manager.service.GRPCManagerService;
/**
* @author peng-yongsheng
*/
public class ServerManagerModule extends Module {
public class GRPCManagerModule extends Module {
public static final String NAME = "server_manager";
public static final String NAME = "gRPC_manager";
@Override public String name() {
return NAME;
}
@Override public Class[] services() {
return new Class[] {GRPCServerManagerService.class, JettyServerManagerService.class};
return new Class[] {GRPCManagerService.class};
}
}
......@@ -16,7 +16,7 @@
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.server.manager.service;
package org.skywalking.apm.collector.grpc.manager.service;
import org.skywalking.apm.collector.core.module.Service;
import org.skywalking.apm.collector.server.Server;
......@@ -24,6 +24,6 @@ import org.skywalking.apm.collector.server.Server;
/**
* @author peng-yongsheng
*/
public interface ManagerService<T extends ServerConfig> extends Service {
Server getElseCreateServer(T config);
public interface GRPCManagerService extends Service {
Server getElseCreateServer(String host, int port);
}
......@@ -16,4 +16,4 @@
# Project repository: https://github.com/OpenSkywalking/skywalking
#
org.skywalking.apm.collector.server.manager.ServerManagerModule
\ No newline at end of file
org.skywalking.apm.collector.grpc.manager.GRPCManagerModule
\ No newline at end of file
......@@ -21,7 +21,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>apm-collector-server-manager</artifactId>
<artifactId>apm-collector-grpc-manager</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
</parent>
......@@ -33,7 +33,7 @@
<dependencies>
<dependency>
<groupId>org.skywalking</groupId>
<artifactId>collector-server-manager-define</artifactId>
<artifactId>collector-grpc-manager-define</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
......
......@@ -16,31 +16,30 @@
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.server.manager.grpc;
package org.skywalking.apm.collector.grpc.manager;
import java.util.Properties;
import org.skywalking.apm.collector.core.module.Module;
import org.skywalking.apm.collector.core.module.ModuleProvider;
import org.skywalking.apm.collector.core.module.ServiceNotProvidedException;
import org.skywalking.apm.collector.server.manager.ServerManagerModule;
import org.skywalking.apm.collector.server.manager.grpc.service.GRPCServerService;
import org.skywalking.apm.collector.server.manager.service.GRPCServerManagerService;
import org.skywalking.apm.collector.grpc.manager.service.GRPCManagerService;
import org.skywalking.apm.collector.grpc.manager.service.GRPCManagerServiceImpl;
/**
* @author peng-yongsheng
*/
public class ServerManagerModuleGRPCProvider extends ModuleProvider {
public class GRPCManagerProvider extends ModuleProvider {
@Override public String name() {
return "gRPC";
}
@Override public Class<? extends Module> module() {
return ServerManagerModule.class;
return GRPCManagerModule.class;
}
@Override public void prepare(Properties config) throws ServiceNotProvidedException {
this.registerServiceImplementation(GRPCServerManagerService.class, new GRPCServerService());
this.registerServiceImplementation(GRPCManagerService.class, new GRPCManagerServiceImpl());
}
@Override public void start(Properties config) throws ServiceNotProvidedException {
......
......@@ -16,28 +16,26 @@
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.server.manager.grpc.service;
package org.skywalking.apm.collector.grpc.manager.service;
import java.util.HashMap;
import java.util.Map;
import org.skywalking.apm.collector.server.Server;
import org.skywalking.apm.collector.server.grpc.GRPCServer;
import org.skywalking.apm.collector.server.manager.service.GRPCServerConfig;
import org.skywalking.apm.collector.server.manager.service.GRPCServerManagerService;
/**
* @author peng-yongsheng
*/
public class GRPCServerService implements GRPCServerManagerService {
public class GRPCManagerServiceImpl implements GRPCManagerService {
private Map<String, GRPCServer> servers = new HashMap<>();
@Override public Server getElseCreateServer(GRPCServerConfig config) {
String id = config.getHost() + String.valueOf(config.getPort());
@Override public Server getElseCreateServer(String host, int port) {
String id = host + String.valueOf(port);
if (servers.containsKey(id)) {
return servers.get(id);
} else {
GRPCServer server = new GRPCServer(config.getHost(), config.getPort());
GRPCServer server = new GRPCServer(host, port);
servers.put(id, server);
return server;
}
......
......@@ -16,4 +16,4 @@
# Project repository: https://github.com/OpenSkywalking/skywalking
#
org.skywalking.apm.collector.server.manager.grpc.ServerManagerModuleGRPCProvider
\ No newline at end of file
org.skywalking.apm.collector.grpc.manager.GRPCManagerProvider
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright 2017, OpenSkywalking Organization All rights reserved.
~
~ Licensed 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.
~
~ Project repository: https://github.com/OpenSkywalking/skywalking
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>apm-collector</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>apm-collector-grpc-manager</artifactId>
<packaging>pom</packaging>
<modules>
<module>collector-grpc-manager-define</module>
<module>collector-grpc-manager-provider</module>
</modules>
<dependencies>
<dependency>
<groupId>org.skywalking</groupId>
<artifactId>apm-collector-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.skywalking</groupId>
<artifactId>server-component</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright 2017, OpenSkywalking Organization All rights reserved.
~
~ Licensed 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.
~
~ Project repository: https://github.com/OpenSkywalking/skywalking
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>apm-collector-jetty-manager</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>collector-jetty-manager-define</artifactId>
<packaging>jar</packaging>
</project>
\ No newline at end of file
......@@ -16,10 +16,22 @@
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.server.manager.service;
package org.skywalking.apm.collector.jetty.manager;
import org.skywalking.apm.collector.core.module.Module;
/**
* @author peng-yongsheng
*/
public interface GRPCServerManagerService extends ManagerService<GRPCServerConfig> {
public class JettyManagerModule extends Module {
public static final String NAME = "jetty_manager";
@Override public String name() {
return NAME;
}
@Override public Class[] services() {
return new Class[0];
}
}
......@@ -16,14 +16,14 @@
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.server.manager.service;
package org.skywalking.apm.collector.jetty.manager.service;
import org.skywalking.apm.collector.core.module.Service;
import org.skywalking.apm.collector.server.Server;
/**
* @author peng-yongsheng
*/
public class GRPCServerConfig extends ServerConfig {
public GRPCServerConfig(String host, int port) {
super(host, port);
}
public interface JettyManagerService extends Service {
Server getElseCreateServer(String host, int port, String contextPath);
}
#
# Copyright 2017, OpenSkywalking Organization All rights reserved.
#
# Licensed 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.
#
# Project repository: https://github.com/OpenSkywalking/skywalking
#
org.skywalking.apm.collector.jetty.manager.JettyManagerModule
\ No newline at end of file
......@@ -21,7 +21,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>apm-collector-server-manager</artifactId>
<artifactId>apm-collector-jetty-manager</artifactId>
<groupId>org.skywalking</groupId>
<version>3.2.3-2017</version>
</parent>
......@@ -33,7 +33,7 @@
<dependencies>
<dependency>
<groupId>org.skywalking</groupId>
<artifactId>collector-server-manager-define</artifactId>
<artifactId>collector-jetty-manager-define</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
......
......@@ -16,31 +16,30 @@
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.server.manager.jetty;
package org.skywalking.apm.collector.jetty.manager;
import java.util.Properties;
import org.skywalking.apm.collector.core.module.Module;
import org.skywalking.apm.collector.core.module.ModuleProvider;
import org.skywalking.apm.collector.core.module.ServiceNotProvidedException;
import org.skywalking.apm.collector.server.manager.ServerManagerModule;
import org.skywalking.apm.collector.server.manager.jetty.service.JettyServerService;
import org.skywalking.apm.collector.server.manager.service.JettyServerManagerService;
import org.skywalking.apm.collector.jetty.manager.service.JettyManagerService;
import org.skywalking.apm.collector.jetty.manager.service.JettyManagerServiceImpl;
/**
* @author peng-yongsheng
*/
public class ServerManagerModuleJettyProvider extends ModuleProvider {
public class JettyManagerProvider extends ModuleProvider {
@Override public String name() {
return "jetty";
}
@Override public Class<? extends Module> module() {
return ServerManagerModule.class;
return JettyManagerModule.class;
}
@Override public void prepare(Properties config) throws ServiceNotProvidedException {
this.registerServiceImplementation(JettyServerManagerService.class, new JettyServerService());
this.registerServiceImplementation(JettyManagerService.class, new JettyManagerServiceImpl());
}
@Override public void start(Properties config) throws ServiceNotProvidedException {
......
......@@ -16,28 +16,26 @@
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.server.manager.jetty.service;
package org.skywalking.apm.collector.jetty.manager.service;
import java.util.HashMap;
import java.util.Map;
import org.skywalking.apm.collector.server.Server;
import org.skywalking.apm.collector.server.jetty.JettyServer;
import org.skywalking.apm.collector.server.manager.service.JettyServerConfig;
import org.skywalking.apm.collector.server.manager.service.JettyServerManagerService;
/**
* @author peng-yongsheng
*/
public class JettyServerService implements JettyServerManagerService {
public class JettyManagerServiceImpl implements JettyManagerService {
private Map<String, JettyServer> servers = new HashMap<>();
@Override public Server getElseCreateServer(JettyServerConfig config) {
String id = config.getHost() + String.valueOf(config.getPort());
@Override public Server getElseCreateServer(String host, int port, String contextPath) {
String id = host + String.valueOf(port);
if (servers.containsKey(id)) {
return servers.get(id);
} else {
JettyServer server = new JettyServer(config.getHost(), config.getPort(), config.getContextPath());
JettyServer server = new JettyServer(host, port, contextPath);
servers.put(id, server);
return server;
}
......
......@@ -16,4 +16,4 @@
# Project repository: https://github.com/OpenSkywalking/skywalking
#
org.skywalking.apm.collector.server.manager.jetty.ServerManagerModuleJettyProvider
\ No newline at end of file
org.skywalking.apm.collector.jetty.manager.JettyManagerProvider
\ No newline at end of file
......@@ -27,12 +27,11 @@
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>apm-collector-server-manager</artifactId>
<artifactId>apm-collector-jetty-manager</artifactId>
<packaging>pom</packaging>
<modules>
<module>collector-server-manager-define</module>
<module>collector-jetty-manager-define</module>
<module>collector-jetty-manager-provider</module>
<module>collector-grpc-manager-provider</module>
</modules>
<dependencies>
......
/*
* Copyright 2017, OpenSkywalking Organization All rights reserved.
*
* Licensed 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.
*
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.server.manager.service;
/**
* @author peng-yongsheng
*/
public class JettyServerConfig extends ServerConfig {
private final String contextPath;
public JettyServerConfig(String host, int port, String contextPath) {
super(host, port);
this.contextPath = contextPath;
}
public final String getContextPath() {
return contextPath;
}
}
/*
* Copyright 2017, OpenSkywalking Organization All rights reserved.
*
* Licensed 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.
*
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.server.manager.service;
/**
* @author peng-yongsheng
*/
public interface JettyServerManagerService extends ManagerService<JettyServerConfig> {
}
/*
* Copyright 2017, OpenSkywalking Organization All rights reserved.
*
* Licensed 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.
*
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.server.manager.service;
/**
* @author peng-yongsheng
*/
public abstract class ServerConfig {
private final String host;
private final int port;
public ServerConfig(String host, int port) {
this.host = host;
this.port = port;
}
public final String getHost() {
return host;
}
public final int getPort() {
return port;
}
}
......@@ -43,7 +43,7 @@
</dependency>
<dependency>
<groupId>org.skywalking</groupId>
<artifactId>collector-server-manager-define</artifactId>
<artifactId>collector-jetty-manager-define</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
......
......@@ -25,10 +25,9 @@ import org.skywalking.apm.collector.core.module.Module;
import org.skywalking.apm.collector.core.module.ModuleNotFoundException;
import org.skywalking.apm.collector.core.module.ModuleProvider;
import org.skywalking.apm.collector.core.module.ServiceNotProvidedException;
import org.skywalking.apm.collector.jetty.manager.JettyManagerModule;
import org.skywalking.apm.collector.jetty.manager.service.JettyManagerService;
import org.skywalking.apm.collector.server.Server;
import org.skywalking.apm.collector.server.manager.ServerManagerModule;
import org.skywalking.apm.collector.server.manager.service.JettyServerConfig;
import org.skywalking.apm.collector.server.manager.service.JettyServerManagerService;
import org.skywalking.apm.collector.ui.UIModule;
/**
......@@ -40,8 +39,6 @@ public class UIModuleJettyProvider extends ModuleProvider {
private static final String PORT = "port";
private static final String CONTEXT_PATH = "context_path";
private JettyServerConfig serverConfig;
@Override public String name() {
return "jetty";
}
......@@ -51,16 +48,15 @@ public class UIModuleJettyProvider extends ModuleProvider {
}
@Override public void prepare(Properties config) throws ServiceNotProvidedException {
String host = config.getProperty(HOST);
Integer port = (Integer)config.get(PORT);
String contextPath = config.getProperty(CONTEXT_PATH);
serverConfig = new JettyServerConfig(host, port, contextPath);
}
@Override public void start(Properties config) throws ServiceNotProvidedException {
String host = config.getProperty(HOST);
Integer port = (Integer)config.get(PORT);
String contextPath = config.getProperty(CONTEXT_PATH);
try {
JettyServerManagerService managerService = getManager().find(ServerManagerModule.NAME).getService(JettyServerManagerService.class);
Server jettyServer = managerService.getElseCreateServer(serverConfig);
JettyManagerService managerService = getManager().find(JettyManagerModule.NAME).getService(JettyManagerService.class);
Server jettyServer = managerService.getElseCreateServer(host, port, contextPath);
ModuleRegisterService moduleRegisterService = getManager().find(ClusterModule.NAME).getService(ModuleRegisterService.class);
} catch (ModuleNotFoundException e) {
......@@ -73,6 +69,6 @@ public class UIModuleJettyProvider extends ModuleProvider {
}
@Override public String[] requiredModules() {
return new String[] {ClusterModule.NAME, ServerManagerModule.NAME};
return new String[] {ClusterModule.NAME, JettyManagerModule.NAME};
}
}
......@@ -40,7 +40,8 @@
<module>apm-collector-cache</module>
<module>apm-collector-storage</module>
<module>apm-collector-naming</module>
<module>apm-collector-server-manager</module>
<module>apm-collector-grpc-manager</module>
<module>apm-collector-jetty-manager</module>
</modules>
<properties>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册