zoukankan      html  css  js  c++  java
  • 第一章:初识Netty:背景、现状与趋势 (7讲)

    如何学netty?

    关键点在于抓住主线:

    请求处理最主要的流程是什么?

    最核心的逻辑是什么?

    在了解这些主线之前,不要迷恋细节,否则容易迷失在那些细枝末节的代码中。

    如何学好一个技术?

    1、了解这个技术的本质、背景、定位、过去和未来

    2、这个技术的原理是什么

    3、看文档,怎么用这个技术

    4、别人是怎么的,有什么借鉴的地方

    5、这个技术有什么需要改进的地方,为这个技术添砖加瓦

    通过该课程学习,希望达到的目标

    1、掌握java网络编程基本知识和原理

    2、使用netty构建一个能推向产品线的java网络服务器

    3、熟悉netty核心源码以及其深层原理

    4、能够熟练诊断、分析并排查netty使用中的各种故障

    netty相关书籍

     网络知识:《TCP/IP详解》、《图解TCP/IP》、《Wireshark网络分析就这么简单》
    
    Java 网络编程:《Java 网络编程》、《Java TCP/IP Socket编程》
    
    Netty 相关:《Netty权威指南》《Netty实战》(译自《Netty in action》: Norman Maurer)《Netty进阶之路:跟着案例学Netty》

    netty解决问题的方案

    1、绕着走 epoll空转问题,做一个空检测

    2、 搞不定就不支持,http_opt 设置在jdk中的异常,不支持

    netty的优点;

    解决了一些bug

    性能更好

    屏蔽了细节,更易用

    老师,一般的netty服务端能支持多少长连接?

    一个连接是由:客户端【IP + PORT】+ 服务器 【IP(固定的) + PORT(固定的)】 四个元素决定的
    
    tcp层:客户端TCP层:最大64k,服务端:ip地址数量(约43亿)*64k
    系统限制:最大文件句柄数:21亿
    
    资源限制:linux系统下,一个socket连接一般占用3K,所以100万连接至少需要3G,而1000万就要30G了。
    
     理论值:单个客户端连接到一个服务器最多连接数取决于本地可用端口数(因为其他3个元素固定了): 65535(报文中端口占用字节数是16,所以最大端口数65535)- 1024(保留端口,不给用) 约 64K。

    使用netty的项目:

    spring5 的spring web flux

    rocketmq

    dubbo

    spark 

    hadoop

    elasticsearch

    zookeeper

  • 相关阅读:
    log4j输出信息到mongodb
    mongodb日志服务器方案
    mongodb的高级操作(聚合框架)
    mongdb高级操作(group by )
    mongodb的优化
    mongodb集成spring
    mongodb的固定集合(优化效率)
    mongodb的查询操作符
    mongoDB中的连接池(转载)
    mongodb在java驱动包下的操作(转)
  • 原文地址:https://www.cnblogs.com/lakeslove/p/13097096.html
Copyright © 2011-2022 走看看