Переглянути джерело

修改到docker外运行环境

tags/v1.0.0^2
林万龙 3 роки тому
джерело
коміт
9ee68cd85a
5 змінених файлів з 51 додано та 272 видалено
  1. +2
    -11
      src/main/java/com/telpo/dipperposition/DipperPositionApplication.java
  2. +0
    -2
      src/main/java/com/telpo/dipperposition/handler/NettyServerHandler.java
  3. +24
    -103
      src/main/java/com/telpo/dipperposition/server/DipperPositionServer.java
  4. +0
    -106
      src/main/java/com/telpo/dipperposition/server/EphAsyncServer.java
  5. +25
    -50
      src/main/java/com/telpo/dipperposition/server/TimeAsyncServer.java

+ 2
- 11
src/main/java/com/telpo/dipperposition/DipperPositionApplication.java Переглянути файл

@@ -1,28 +1,17 @@
package com.telpo.dipperposition;

import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.config.listener.Listener;
import com.alibaba.nacos.api.PropertyKeyConst;
import com.alibaba.nacos.api.exception.NacosException;
import com.telpo.dipperposition.co.PositionConfigInfo;
import com.telpo.dipperposition.server.DipperPositionServer;
import com.telpo.dipperposition.server.EphAsyncServer;
import com.telpo.dipperposition.server.TimeAsyncServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;

import java.util.Properties;
import java.util.concurrent.Executor;

/**
* @program: gateway
* @description: 网关启动类
@@ -44,6 +33,8 @@ public class DipperPositionApplication {
log.info("北斗定位服务启动!");
//启动服务端
ConfigurableEnvironment environment = applicationContext.getEnvironment();
TimeAsyncServer timeAsyncServer = new TimeAsyncServer(environment);
timeAsyncServer.start();
DipperPositionServer nettyServer = new DipperPositionServer(environment);
nettyServer.start();
} catch (Exception e) {


+ 0
- 2
src/main/java/com/telpo/dipperposition/handler/NettyServerHandler.java Переглянути файл

@@ -124,8 +124,6 @@ public class NettyServerHandler extends ChannelInboundHandlerAdapter {
// if (Integer.parseInt(posAsycServerPort) == channel.localAddress().getPort()) {

//if (AST_POS_CMD.equals(recvmg)) {
log.info("config info is : " + positionConfig.getCenterProvinceFilePath() + positionConfig.getCenterProvince() + positionConfig.getIpPositionRequestPath() +
positionConfig.getIpPositionRequestKey());
if (AST_POS_CMD.equals(msg)) {
// channelAns = dipperAstPosAsyncTaskService.pushAstPos(ipAddress,
// positionConfig.getCenterProvinceFilePath(),


+ 24
- 103
src/main/java/com/telpo/dipperposition/server/DipperPositionServer.java Переглянути файл

@@ -69,101 +69,22 @@ public class DipperPositionServer {
// ex.printStackTrace();
// }
}
// /*
// * 时间同步进程线程
// */
// public void startTimeAsnc() {
//
// //new 一个主线程组
// EventLoopGroup mainThreadGroup = new NioEventLoopGroup(1);
// //new 一个工作线程组
// EventLoopGroup workThreadGroup = new NioEventLoopGroup(200);
// InetSocketAddress socketAddress = new InetSocketAddress(serverAddr,
// timeAsycPort);
// ServerBootstrap bootstrap = new ServerBootstrap()
// .group(mainThreadGroup, workThreadGroup)
// .channel(NioServerSocketChannel.class)
// .childHandler(new ServerChannelInitializer())
// .localAddress(socketAddress)
// //设置队列大小
// .option(ChannelOption.SO_BACKLOG, 1024)
// // 两小时内没有数据的通信时,TCP会自动发送一个活动探测数据报文
// .childOption(ChannelOption.SO_KEEPALIVE, true);
//
//
// //绑定端口,开始接收进来的连接
// try {
// ChannelFuture future = bootstrap.bind(socketAddress).sync();
// log.info("服务器启动开始监听端口: {}", socketAddress.getPort());
//
//
// future.channel().closeFuture().sync();
// } catch (InterruptedException e) {
// e.printStackTrace();
// } finally {
// //关闭主线程组
// mainThreadGroup.shutdownGracefully();
// //关闭工作线程组
// workThreadGroup.shutdownGracefully();
// }
// }

// /*
// * 时间同步进程线程
// */
// public void startPosAsnc() {
//
// //new 一个主线程组
// EventLoopGroup mainThreadGroup = new NioEventLoopGroup(1);
// //new 一个工作线程组
// EventLoopGroup workThreadGroup = new NioEventLoopGroup(200);
// InetSocketAddress socketAddress = new InetSocketAddress(serverAddr,
// posAsycPort);
// ServerBootstrap bootstrap = new ServerBootstrap()
// .group(mainThreadGroup, workThreadGroup)
// .channel(NioServerSocketChannel.class)
// .childHandler(new ServerChannelInitializer())
// .localAddress(socketAddress)
// //设置队列大小
// .option(ChannelOption.SO_BACKLOG, 1024)
// // 两小时内没有数据的通信时,TCP会自动发送一个活动探测数据报文
// .childOption(ChannelOption.SO_KEEPALIVE, true);
//
//
// //绑定端口,开始接收进来的连接
// try {
// ChannelFuture future = bootstrap.bind(socketAddress).sync();
// log.info("服务器启动开始监听端口: {}", socketAddress.getPort());
//
//
// future.channel().closeFuture().sync();
// } catch (InterruptedException e) {
// e.printStackTrace();
// } finally {
// //关闭主线程组
// mainThreadGroup.shutdownGracefully();
// //关闭工作线程组
// workThreadGroup.shutdownGracefully();
// }
// }


/*
* 星历同步进程线程
*/
//public void startStarsAsnc() {
public void start() {

//new 一个主线程组
EventLoopGroup mainThreadGroup = new NioEventLoopGroup(1);
//new 一个工作线程组
EventLoopGroup workThreadGroup = new NioEventLoopGroup(200);
InetSocketAddress socketAddress = new InetSocketAddress(serverAddr,9011);
//InetSocketAddress socketAddress = new InetSocketAddress(serverAddr,9011);
ServerBootstrap bootstrap = new ServerBootstrap()
.group(mainThreadGroup, workThreadGroup)
.channel(NioServerSocketChannel.class)
.childHandler(new ServerChannelInitializer())
.localAddress(socketAddress)
// .localAddress(socketAddress)
//设置队列大小
.option(ChannelOption.SO_BACKLOG, 1024)
// 两小时内没有数据的通信时,TCP会自动发送一个活动探测数据报文
@@ -172,28 +93,28 @@ public class DipperPositionServer {

//绑定端口,开始接收进来的连接
try {
ChannelFuture channelFuture = bootstrap.bind(timeAsycPort).sync();
log.info("时间辅助服务器启动开始监听端口: {}", timeAsycPort);
channelFuture.addListener(future -> {
if (future.isSuccess()){
System.out.println("start success");
}else{
System.out.println("start failed");
}
});
channelFuture.channel().closeFuture().sync();
ChannelFuture channelFuture2 = bootstrap.bind(posAsycPort).sync();
log.info("位置服务器启动开始监听端口: {}", posAsycPort);
channelFuture2.addListener(future -> {
if (future.isSuccess()){
System.out.println("start success");
}else{
System.out.println("start failed");
}
});
channelFuture2.channel().closeFuture().sync();
// ChannelFuture channelFuture = bootstrap.bind(timeAsycPort).sync();
// log.info("时间辅助服务器启动开始监听端口: {}", timeAsycPort);
// channelFuture.addListener(future -> {
// if (future.isSuccess()){
// System.out.println("start success");
// }else{
// System.out.println("start failed");
// }
// });
// channelFuture.channel().closeFuture().sync();
//
// ChannelFuture channelFuture2 = bootstrap.bind(posAsycPort).sync();
// log.info("位置服务器启动开始监听端口: {}", posAsycPort);
// channelFuture2.addListener(future -> {
// if (future.isSuccess()){
// System.out.println("start success");
// }else{
// System.out.println("start failed");
// }
// });
// channelFuture2.channel().closeFuture().sync();
//

ChannelFuture channelFuture3 = bootstrap.bind(starsAsycPort).sync();
log.info("星历服务器启动开始监听端口: {}", starsAsycPort);


+ 0
- 106
src/main/java/com/telpo/dipperposition/server/EphAsyncServer.java Переглянути файл

@@ -1,106 +0,0 @@
package com.telpo.dipperposition.server;

import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.PropertyKeyConst;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.exception.NacosException;
import com.telpo.dipperposition.handler.ServerChannelInitializer;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import lombok.extern.slf4j.Slf4j;
import org.yaml.snakeyaml.Yaml;

import java.io.ByteArrayInputStream;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.util.Map;
import java.util.Properties;


/**
* @program: DipperPositionServer
* @description: 北斗定位
* @author: king
* @create: 2021-01-13 14:01
*/
@Slf4j
public class EphAsyncServer {

// @Autowired PositionConfigInfo positionConfigInfo;
private String serverAddr;
private Integer starsAsycPort;

public EphAsyncServer() throws NacosException {
//String serverAddr = positionConfigInfo.getServerAddr();
try {
try {
InetAddress ip4 = Inet4Address.getLocalHost();
serverAddr = ip4.getHostAddress();
} catch (Exception ex) {
serverAddr = "172.16.192.26";
ex.printStackTrace();
}
String dataId = "dipperposition-service";
String group = "DEFAULT_GROUP";
Properties properties = new Properties();
properties.put(PropertyKeyConst.SERVER_ADDR, serverAddr);
ConfigService configService = NacosFactory.createConfigService(properties);
String content = configService.getConfig(dataId, group, 5000);

ByteArrayInputStream tInputStringStream = new ByteArrayInputStream(content.getBytes());
Yaml yaml = new Yaml();
Map m1 = yaml.load(tInputStringStream);
Map m2 = (Map) m1.get("position-server");
this.serverAddr = (String)m2.get("serverAddr");
this.starsAsycPort = (Integer)m2.get("starsAsycPort");
//log.info("Map server is:" + m2.get("serverAddr"));
} catch (Exception ex) {
ex.printStackTrace();
}
//log.info("Config serverAddr is " + serverAddr);
}

/*
* 星历同步进程线程
*/
public void startStarsAsnc() {

//new 一个主线程组
EventLoopGroup mainThreadGroup = new NioEventLoopGroup(1);
//new 一个工作线程组
EventLoopGroup workThreadGroup = new NioEventLoopGroup(200);
InetSocketAddress socketAddress = new InetSocketAddress(serverAddr,
starsAsycPort);
ServerBootstrap bootstrap = new ServerBootstrap()
.group(mainThreadGroup, workThreadGroup)
.channel(NioServerSocketChannel.class)
.childHandler(new ServerChannelInitializer())
.localAddress(socketAddress)
//设置队列大小
.option(ChannelOption.SO_BACKLOG, 1024)
// 两小时内没有数据的通信时,TCP会自动发送一个活动探测数据报文
.childOption(ChannelOption.SO_KEEPALIVE, true);


//绑定端口,开始接收进来的连接
try {
ChannelFuture future = bootstrap.bind(socketAddress).sync();
log.info("服务器启动开始监听端口: {}", socketAddress.getPort());


future.channel().closeFuture().sync();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
//关闭主线程组
mainThreadGroup.shutdownGracefully();
//关闭工作线程组
workThreadGroup.shutdownGracefully();
}
}
}

+ 25
- 50
src/main/java/com/telpo/dipperposition/server/TimeAsyncServer.java Переглянути файл

@@ -1,8 +1,5 @@
package com.telpo.dipperposition.server;

import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.PropertyKeyConst;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.exception.NacosException;
import com.telpo.dipperposition.handler.ServerChannelInitializer;
import io.netty.bootstrap.ServerBootstrap;
@@ -12,18 +9,12 @@ import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import lombok.extern.slf4j.Slf4j;
import org.yaml.snakeyaml.Yaml;
import org.springframework.core.env.ConfigurableEnvironment;

import java.io.ByteArrayInputStream;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.util.Map;
import java.util.Properties;


/**
* @program: DipperPositionServer
* @program: TimeAsyncServer
* @description: 北斗定位
* @author: king
* @create: 2021-01-13 14:01
@@ -33,53 +24,32 @@ public class TimeAsyncServer {

// @Autowired PositionConfigInfo positionConfigInfo;
private String serverAddr;
private Integer serverPort;
private Integer timeAsycPort;
private Integer posAsycPort;
private Integer starsAsycPort;

public TimeAsyncServer() throws NacosException {
//String serverAddr = positionConfigInfo.getServerAddr();
try {
try {
InetAddress ip4 = Inet4Address.getLocalHost();
serverAddr = ip4.getHostAddress();
} catch (Exception ex) {
serverAddr = "172.16.192.26";
ex.printStackTrace();
}
String dataId = "dipperposition-service";
String group = "DEFAULT_GROUP";
Properties properties = new Properties();
properties.put(PropertyKeyConst.SERVER_ADDR, serverAddr);
ConfigService configService = NacosFactory.createConfigService(properties);
String content = configService.getConfig(dataId, group, 5000);
public TimeAsyncServer(ConfigurableEnvironment environment) throws NacosException {

ByteArrayInputStream tInputStringStream = new ByteArrayInputStream(content.getBytes());
Yaml yaml = new Yaml();
Map m1 = yaml.load(tInputStringStream);
Map m2 = (Map) m1.get("position-server");
this.serverAddr = (String)m2.get("serverAddr");
this.timeAsycPort = (Integer)m2.get("timeAsycPort");
//log.info("Map server is:" + m2.get("serverAddr"));
} catch (Exception ex) {
ex.printStackTrace();
}
//log.info("Config serverAddr is " + serverAddr);
this.serverAddr = environment.getProperty("position-server.serverAddr");
this.serverPort = Integer.parseInt(environment.getProperty("server.port"));
this.timeAsycPort = Integer.parseInt(environment.getProperty("position-server.timeAsycPort"));
this.posAsycPort = Integer.parseInt(environment.getProperty("position-server.posAsycPort"));
this.starsAsycPort = Integer.parseInt(environment.getProperty("position-server.starsAsycPort"));
}
/*
* 时间同步进程线程
*/
public void startTimeAsnc() {

public void start() {

//new 一个主线程组
EventLoopGroup mainThreadGroup = new NioEventLoopGroup(1);
//new 一个工作线程组
EventLoopGroup workThreadGroup = new NioEventLoopGroup(200);
InetSocketAddress socketAddress = new InetSocketAddress(serverAddr,
timeAsycPort);
//InetSocketAddress socketAddress = new InetSocketAddress(serverAddr,null);
ServerBootstrap bootstrap = new ServerBootstrap()
.group(mainThreadGroup, workThreadGroup)
.channel(NioServerSocketChannel.class)
.childHandler(new ServerChannelInitializer())
.localAddress(socketAddress)
//.localAddress(socketAddress)
//设置队列大小
.option(ChannelOption.SO_BACKLOG, 1024)
// 两小时内没有数据的通信时,TCP会自动发送一个活动探测数据报文
@@ -88,11 +58,17 @@ public class TimeAsyncServer {

//绑定端口,开始接收进来的连接
try {
ChannelFuture future = bootstrap.bind(socketAddress).sync();
log.info("服务器启动开始监听端口: {}", socketAddress.getPort());

ChannelFuture channelFuture = bootstrap.bind(timeAsycPort).sync();
log.info("时间辅助服务器启动开始监听端口: {}", timeAsycPort);
channelFuture.addListener(future -> {
if (future.isSuccess()){
System.out.println("start success");
}else{
System.out.println("start failed");
}
});

future.channel().closeFuture().sync();
channelFuture.channel().closeFuture().sync();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
@@ -102,5 +78,4 @@ public class TimeAsyncServer {
workThreadGroup.shutdownGracefully();
}
}

}

Завантаження…
Відмінити
Зберегти