Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qg-push
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
head_group
qg-push
Commits
38fe7fee
Commit
38fe7fee
authored
Sep 08, 2022
by
李健华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交配置
parent
4842d2a9
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
143 additions
and
32 deletions
+143
-32
pom.xml
pom.xml
+4
-4
TcpServer.java
src/main/java/com/netty/server/server/TcpServer.java
+13
-6
app.properties
src/main/resources/META-INF/app.properties
+2
-0
application.yml
src/main/resources/application.yml
+0
-22
logback-dev.xml
src/main/resources/logback-dev.xml
+83
-0
logback-pro.xml
src/main/resources/logback-pro.xml
+41
-0
No files found.
pom.xml
View file @
38fe7fee
...
...
@@ -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>
...
...
src/main/java/com/netty/server/server/TcpServer.java
View file @
38fe7fee
...
...
@@ -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
)
{
...
...
src/main/resources/META-INF/app.properties
0 → 100644
View file @
38fe7fee
app.id
=
websocket-server
namespace
=
application,tech.common,tech.sleuth,tech.service.urls
\ No newline at end of file
src/main/resources/application.yml
deleted
100644 → 0
View file @
4842d2a9
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
src/main/resources/logback-dev.xml
0 → 100644
View file @
38fe7fee
<?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
src/main/resources/logback-pro.xml
0 → 100644
View file @
38fe7fee
<?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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment