Commit 38fe7fee authored by 李健华's avatar 李健华

提交配置

parent 4842d2a9
......@@ -3,10 +3,10 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
<groupId>cn.quantgroup.boot</groupId>
<artifactId>qg-boot-parent</artifactId>
<version>2.6.3.16</version>
<relativePath/>
</parent>
<groupId>com.netty</groupId>
<artifactId>server</artifactId>
......
......@@ -19,6 +19,7 @@ import io.netty.channel.socket.nio.NioServerSocketChannel;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.PreDestroy;
......@@ -56,12 +57,18 @@ public class TcpServer implements ITcpServer {
@Autowired
private WebsocketMessageHandler websocketHandler;
@Value("${netty.port}")
private int port;
@Value("${netty.useEpoll:false}")
private Boolean useEpoll;
@Override
public void start() throws Exception {
log.info("初始化 TCP server ...");
bossGroup = serverProperties.isUseEpoll() ? new EpollEventLoopGroup() : new NioEventLoopGroup();
workerGroup = serverProperties.isUseEpoll() ? new EpollEventLoopGroup() : new NioEventLoopGroup();
bossGroup = useEpoll ? new EpollEventLoopGroup() : new NioEventLoopGroup();
workerGroup = useEpoll ? new EpollEventLoopGroup() : new NioEventLoopGroup();
this.tcpServer();
}
......@@ -74,7 +81,7 @@ public class TcpServer implements ITcpServer {
ServerBootstrap serverBootstrap = new ServerBootstrap();
serverBootstrap.group(bossGroup, workerGroup)
.channel(serverProperties.isUseEpoll() ? EpollServerSocketChannel.class : NioServerSocketChannel.class)
.localAddress(new InetSocketAddress(serverProperties.getPort()))
.localAddress(new InetSocketAddress(port))
// 配置 编码器、解码器、业务处理
.childHandler(new ChannelInit(cacheService, websocketHandler))
// tcp缓冲区
......@@ -83,16 +90,16 @@ public class TcpServer implements ITcpServer {
.childOption(ChannelOption.TCP_NODELAY, false)
// 保持长连接
.childOption(ChannelOption.SO_KEEPALIVE, true);
ChannelFuture channelFuture = serverBootstrap.bind(new InetSocketAddress(serverProperties.getPort())).syncUninterruptibly();
ChannelFuture channelFuture = serverBootstrap.bind(new InetSocketAddress(port)).syncUninterruptibly();
this.channel = channelFuture.channel();
log.info("websocket server启动成功!开始监听端口:{}", serverProperties.getPort());
log.info("websocket server启动成功!开始监听端口:{}", port);
String ip = InetAddress.getLocalHost().getHostAddress();
Date date = new Date();
//每3秒向注册中心注册一下自己的服务端信息 如果5秒没有注册redis便清除此服务端信息
CacheUtil.executorService.submit(() -> {
try {
while (channel.isActive()) {
redisTemplate.opsForValue().set("newnettyServer" + ip, JSON.toJSONString(new ServerInfo(ip, serverProperties.getPort(), date)), 5 * 1000, TimeUnit.MILLISECONDS);
redisTemplate.opsForValue().set("newnettyServer" + ip, JSON.toJSONString(new ServerInfo(ip, port, date)), 5 * 1000, TimeUnit.MILLISECONDS);
Thread.sleep(3 * 1000);
}
} catch (Exception e) {
......
app.id=websocket-server
namespace=application,tech.common,tech.sleuth,tech.service.urls
\ No newline at end of file
spring:
application:
name: tcp-server
redis:
host: 172.16.4.6
port: 30835
password:
server:
port: 9999
# tcp
netty:
server:
host: 127.0.0.1
port: 20000
use-epoll: false
# 日记配置
logging:
level:
# 开启debug日记打印
com.netty: debug
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
<appender name="ROLLINGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>./websocket-server.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>./websocket-server.%d{yyyy-MM-dd}-%i.gz</fileNamePattern>
<maxHistory>90</maxHistory>
<maxFileSize>512MB</maxFileSize>
<totalSizeCap>10GB</totalSizeCap>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<charset>utf-8</charset>
<!-- <Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}][%p][%X{sessionId}][%X{traceId}][${spring.profiles.active}][%X{userId}][%t|%logger{1.}|%M|%X{ctime}] - %msg %ex{full}%n</Pattern>-->
<Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}][%p][%t|%logger{1.}|%M] - %msg %ex{full}%n</Pattern>
</encoder>
</appender>
<!-- <appender name="ASYNC_ROLLINGFILE" class="ch.qos.logback.classic.AsyncAppender">-->
<!-- <queueSize>512</queueSize>-->
<!-- <appender-ref ref="ROLLINGFILE"/>-->
<!-- </appender>-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}]%-4relative [%thread] %-5level %logger{35} - %msg %ex{full}%n</pattern>-->
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}][%p][%t|%logger{1.}|%M] - %msg %ex{full}%n</pattern>
</encoder>
</appender>
<!--<logger name="javax.activation" level="ERROR"/>-->
<!--<logger name="org.quartz.core" level="ERROR"/>-->
<!--<logger name="org.quartz.simpl" level="ERROR"/>-->
<logger name="com.zaxxer.hikari.pool" level="ERROR"/>
<logger name="com.ctrip.framework.apollo" level="ERROR"/>
<!--<logger name="com.alibaba.dubbo.common.extension" level="ERROR"/>-->
<!--<logger name="org.apache.zookeeper" level="ERROR"/>-->
<!--<logger name="org.apache.curator" level="ERROR"/>-->
<!--<logger name="org.apache.catalina.loader" level="ERROR"/>-->
<!--<logger name="org.apache.catalina.util" level="ERROR"/>-->
<!--<logger name="org.apache.catalina.core" level="ERROR"/>-->
<!--<logger name="org.hibernate.hql" level="ERROR"/>-->
<!--<logger name="org.hibernate.loader" level="ERROR"/>-->
<!--<logger name="org.hibernate.type" level="ERROR"/>-->
<!--<logger name="org.hibernate.persister" level="ERROR"/>-->
<!--<logger name="org.hibernate.cfg" level="ERROR"/>-->
<!--<logger name="org.hibernate.mapping" level="ERROR"/>-->
<!--<logger name="org.hibernate.jpa.event" level="ERROR"/>-->
<!--<logger name="org.hibernate.validator.internal" level="ERROR"/>-->
<!--<logger name="org.hibernate.engine.internal" level="ERROR"/>-->
<!--<logger name="org.hibernate.boot.model" level="ERROR"/>-->
<!--<logger name="org.hibernate.boot.internal" level="ERROR"/>-->
<!--<logger name="org.apache.tomcat.util" level="ERROR"/>-->
<logger name="org.springframework.amqp" level="ERROR"/>
<logger name="org.springframework.data.redis" level="ERROR"/>
<logger name="org.springframework.data.jdbc" level="ERROR"/>
<logger name="org.springframework.jdbc" level="ERROR"/>
<!--<logger name="org.springframework.orm" level="ERROR"/>-->
<!--<logger name="org.springframework.jmx" level="ERROR"/>-->c
<!--<logger name="org.springframework.jndi" level="ERROR"/>-->
<!--<logger name="org.springframework.aop" level="ERROR"/>-->
<!--<logger name="org.springframework.web" level="ERROR"/>-->
<!--<logger name="org.springframework.context" level="ERROR"/>-->
<!--<logger name="org.springframework.core" level="ERROR"/>-->
<logger name="org.springframework.beans" level="ERROR"/>
<!--<logger name="org.springframework.boot.web" level="ERROR"/>-->
<!--<logger name="org.springframework.boot.actuate" level="ERROR"/>-->
<!--<logger name="org.springframework.boot.context" level="ERROR"/>-->
<!--<logger name="org.springframework.boot.autoconfigure.logging" level="ERROR"/>-->
<!--<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="${logging.hibernate.level}"/>-->
<!--<logger name="org.hibernate.engine.QueryParameters" level="DEBUG"/>-->
<!--<logger name="org.hibernate.SQL" level="DEBUG" />-->
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
<appender-ref ref="ROLLINGFILE"/>
</root>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
<appender name="ROLLINGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/home/quant_group/logs/websocket-server.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>/home/quant_group/logs/websocket-server.%d{yyyy-MM-dd}-%i.gz</fileNamePattern>
<maxHistory>90</maxHistory>
<maxFileSize>512MB</maxFileSize>
<totalSizeCap>40GB</totalSizeCap>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<charset>utf-8</charset>
<Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}][%p][%t|%logger{1.}|%M] - %msg %ex{full}%n</Pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %ex{full}%n</pattern>-->
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}][%p][%t|%logger{1.}|%M] - %msg %ex{full}%n</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="ERROR"/>
<logger name="org.hibernate" level="ERROR"/>
<logger name="org.apache" level="ERROR"/>
<logger name="ch.qos.logback" level="ERROR"/>
<logger name="com.amazonaws.services.kinesis.producer.LogInputStreamReader" level="ERROR"/>
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="ROLLINGFILE"/>
</root>
</configuration>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment