zoukankan      html  css  js  c++  java
  • Netty网络高性能核心原理

    Reference:https://time.geekbang.org/column/article/338320

    为什么Netty网络处理性能高?

    因为Netty采用了Reactor模式。

    为什么用了Reactor模式性能就高?

    因为Reactor模式是基于IO多路复用的事件驱动模式。

    为什么IO多路复用性能高?

    因为IO多路复用既不会像阻塞IO那样没有数据的时候挂起工作线程,也不需要像非阻塞IO那样轮询判断是否有数据。

    为什么IO多路复用既不需要挂起工作线程,也不需要轮询?

    因为IO多路复用可以在一个监控线程里面监控很多的连接,没有IO操作的时候只要挂起监控线程;只要其中有连接可以进行IO操作的时候,操作系统就会唤起监控线程进行处理。

    为什么挂起监控线程,这样做性能就高?

    1. 如果采用阻塞工作线程的方式,对于Web这样的系统,并发的连接可能几万十几万,如果每个连接开一个线程的话,系统性能支撑不了;而如果用线程池的话,因为线程被阻塞的时候是不能用来处理其他连接,会出现等待线程的问题。

    2. 线上单个系统的工作线程数配置可以达到几百上千,这样数量的线程频繁切换有性能问题,而单个监控线程切换的性能影响可以忽略不计。

    3. 工作线程没有IO操作的时候可以做其他事情,能够大大提升系统的整体性能。

    强者自救 圣者渡人
  • 相关阅读:
    [Leetcode]Linked List Cycle
    [Leetcode]Excel Sheet Column Number
    [Leetcode]Unique Binary Search Trees
    [Leetcode]Same Tree
    同时访问内外网设置路由信息
    希腊字母表示及读音
    jni入门
    查看某个进程运行时间的几种方法
    企业级hbase HA配置
    存在单点故障的namenode宕机恢复测试
  • 原文地址:https://www.cnblogs.com/agilestyle/p/14353971.html
Copyright © 2011-2022 走看看