did/did-server/src/main/java/io/github/ehlxr/did/ServerStarter.java

50 lines
1.8 KiB
Java
Raw Normal View History

2021-01-22 07:40:02 +00:00
package io.github.ehlxr.did;
2018-08-14 07:21:56 +00:00
2021-01-22 07:40:02 +00:00
import io.github.ehlxr.did.common.Constants;
import io.github.ehlxr.did.core.SnowFlake;
import io.github.ehlxr.did.server.Server;
import io.github.ehlxr.did.server.http.HttpServer;
import io.github.ehlxr.did.server.sdk.SdkServer;
2018-08-14 07:21:56 +00:00
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
2021-01-19 12:28:04 +00:00
import java.util.Arrays;
2018-08-14 07:21:56 +00:00
/**
* @author ehlxr
*/
public class ServerStarter {
private static final Logger logger = LoggerFactory.getLogger(ServerStarter.class);
public static void main(String[] args) {
long datacenterId = Constants.DATACENTER_ID;
2018-08-14 10:37:34 +00:00
long machineId = Constants.MACHINES_ID;
2018-08-14 07:21:56 +00:00
if (args != null && args.length == 2) {
2021-01-18 08:17:14 +00:00
datacenterId = Long.parseLong(args[0]);
machineId = Long.parseLong(args[1]);
2018-08-14 07:21:56 +00:00
}
2021-01-18 08:17:14 +00:00
datacenterId = "".equals(Constants.getEnv("DATACENTER_ID")) ? datacenterId : Long.parseLong(Constants.getEnv("DATACENTER_ID"));
machineId = "".equals(Constants.getEnv("MACHINES_ID")) ? machineId : Long.parseLong(Constants.getEnv("MACHINES_ID"));
2018-08-14 07:21:56 +00:00
logger.info("SnowFlake datacenterId is: {}, machineId is: {}", datacenterId, machineId);
2021-01-27 03:47:09 +00:00
final SnowFlake snowFlake = SnowFlake.newBuilder().datacenterId(datacenterId).machineId(machineId).build();
2018-08-14 07:21:56 +00:00
// 启动 Http 服务器
2021-01-27 03:47:09 +00:00
final Server httpServer = HttpServer.newBuilder().snowFlake(snowFlake).build();
2018-08-14 07:21:56 +00:00
httpServer.start();
// 启动 Sdk 服务器
2021-01-27 03:47:09 +00:00
final Server sdkServer = SdkServer.newBuilder().snowFlake(snowFlake).build();
2018-08-14 07:21:56 +00:00
sdkServer.start();
2021-01-19 12:28:04 +00:00
Runtime.getRuntime().addShutdownHook(new Thread(() ->
2021-01-23 11:46:00 +00:00
Arrays.stream(new Server[]{httpServer, sdkServer})
// 并行 shutdown server
.parallel()
.forEach(Server::shutdown))
);
2018-08-14 07:21:56 +00:00
}
}