Skip to content

springboot和netty整合使用,维持心跳、掉线重连、保持长连

Notifications You must be signed in to change notification settings

lfz757077613/capricorn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

capricorn小工程介绍

  1. capricorn摩羯座是半羊半鱼,符合本工程的C/S架构(强行找借口,其实就是老子喜欢摩羯座,不服你tm来打我啊~)
  2. 自动监测云机的存活状态,不可用云机定时自动反馈到云机厂商的接口,并且提供了查询不可用云机的接口
  3. 本工程可以作为学习netty的案例,尤其是心跳、重连等功能
  4. 其中一些工具类很有价值,尤其是监测netty堆外内存的工具类

项目背景介绍

  1. 工作中需要使用服务商提供的几千台adsl机器(和云机比,就是能拨号,因此公网ip是变的),但是这些机器经常就因为访问不了外网等原因无法正常工作
  2. 因为公网ip不固定,所以需要客户端和服务端通过心跳保持长连接,在服务端统计哪些机器的连接一直是断的,判断机器已死
  3. 服务商提供的adsl机器保证内网ip唯一,所以使用内网ip作为机器的唯一标识
  4. 使用netty实现心跳和重连,整个工程使用spring-boot作为基础框架,服务端使用tomcat提供查询接口(其实也可以用netty做减少jar包大小和内存占用,我图方便了)

自我认为的闪光点

  1. netty和spring-boot的搭配使用很优雅
  2. 安利一波okhttp,比httpclient好用的多,源码也好看
  3. netty的使用很优雅,有很多优化点
  4. 其中有很多可以随抄随用的工具类,比如FileWatchdog、DirectMemReporter等(比如FileWatchdog用jdk8的WatchService比之前的轮训检测配置文件变化更好,待开发)
  5. 因为本工程核心框架是netty,所以只使用了spring-boot的基本功能,spring-boot的很多配置都没配,但是一些基础配置还是挺规范的,比如logback的配置,maven和yml多环境的配合

About

springboot和netty整合使用,维持心跳、掉线重连、保持长连

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published