Przeglądaj źródła

增加OkHttp配置文件读取

tags/v1.0.0^2
林万龙 3 lat temu
rodzic
commit
2df02f0cd0
3 zmienionych plików z 217 dodań i 3 usunięć
  1. +5
    -3
      src/main/java/com/telpo/dipperposition/DipperPositionApplication.java
  2. +106
    -0
      src/main/java/com/telpo/dipperposition/server/EphAsyncServer.java
  3. +106
    -0
      src/main/java/com/telpo/dipperposition/server/TimeAsyncServer.java

+ 5
- 3
src/main/java/com/telpo/dipperposition/DipperPositionApplication.java Wyświetl plik

@@ -6,6 +6,8 @@ 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.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;
@@ -39,11 +41,11 @@ public class DipperPositionApplication {
try {
test();
//启动服务端
DipperPositionServer nettyServer = new DipperPositionServer();
nettyServer.startTimeAsnc();
TimeAsyncServer nettyServer1 = new TimeAsyncServer();
nettyServer1.startTimeAsnc();
DipperPositionServer nettyServer2 = new DipperPositionServer();
nettyServer2.startPosAsnc();
DipperPositionServer nettyServer3 = new DipperPositionServer();
EphAsyncServer nettyServer3 = new EphAsyncServer();
nettyServer3.startStarsAsnc();
} catch (Exception e) {
log.error(e.getMessage());


+ 106
- 0
src/main/java/com/telpo/dipperposition/server/EphAsyncServer.java Wyświetl plik

@@ -0,0 +1,106 @@
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();
}
}
}

+ 106
- 0
src/main/java/com/telpo/dipperposition/server/TimeAsyncServer.java Wyświetl plik

@@ -0,0 +1,106 @@
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 TimeAsyncServer {

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

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);

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);
}
/*
* 时间同步进程线程
*/
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();
}
}

}

Ładowanie…
Anuluj
Zapisz