Netty
一只努力的微服务
努力坚持终会有收获
展开
-
Netty ServerBootstrap加载启动过程源码分析
Netty一般的server创建代码 public class NettyServer { // 日志 private Logger log = LoggerFactory.getLogger(getClass()); // 端口号 @Value("${netty.port}") private int port; // 启动服务器方法 ...原创 2019-05-19 17:43:30 · 238 阅读 · 0 评论 -
epoll的特点
支持一个进程打开的socket描述符(fd)不受限制(仅受限于操作系统的最大文件句柄数) select最大的缺陷单个进程锁打开的fd是由一定限制的,由FD_SETSIZE设置(默认1024),想要修改需要重新编译内核。Java由于没有共享内存,需要通过socket或其他方式进行数据同步,有额外性能开销。epoll没有这个限制,可支持的fd位操作系统最大文件句柄数,1G内存大约10万个句柄。 I/...原创 2019-05-19 17:51:21 · 503 阅读 · 0 评论 -
Netty NioEventLoopGroup实例化过程源码分析
Netty一般的server创建代码 public class NettyServer { // 日志 private Logger log = LoggerFactory.getLogger(getClass()); // 端口号 @Value("${netty.port}") private int port; // 启动服务器方法 ...原创 2019-05-19 16:28:58 · 352 阅读 · 0 评论 -
Netty的优雅退出
Daemon线程 // 若应用的所有非守护线程都结束则程序退出,守护线程会随之自动退出 Thread t = new Thread(); t.setDaemon(false); // 设为非守护线程,默认为false t.setDaemon(true); // 设为守护线程 Java优雅退出机制 1.通过注册JDK的ShutdownHook实现 public static void main(S...原创 2019-08-23 22:11:35 · 1177 阅读 · 0 评论