240 发简信
IP属地:浙江
  • 120
    用户态协议栈之epoll实现原理

    用户态协议栈,为什么要实现epoll?因为内核的epoll是跟内核协议栈一起使用的,内核协议栈处理io后通过回调的方式来操作epoll中的就绪队列,所以用户态协议栈必须要有用...

  • 120
    用户态协议栈之TCP

    要实现用户态协议栈,必须要搞懂TCP,TCP 11个状态、滑动窗口、拥塞控制等等。要使用用户态协议栈,内核提供的epoll就不起作用了,我们需要自己实现用户态的epoll。e...

  • 120
    用户态协议栈的实现

    协议栈,指的是TCP/IP协议栈。linux系统中,协议栈是内核实现的。 Client发送数据给server,数据首先到达网卡,经过两步到达应用程序1)将数据从网卡的内存co...

  • 120
    redis中一些值得借鉴的设计

    scanredis对于命令的处理,即网络io, 是单线程的,如果有上百万个key,使用keys这样的命令,会进行遍历,时间复杂度是O(N), redis server处理的时...

  • reactor模式

    reactor模式是对epoll的一层封装,将网络io转换成event。redis/nginx/libevent对网络io的处理,都采用了reactor模式。 参考下面的代码...

  • io多路复用(select/poll/epoll)

    什么是io多路复用?为什么要有io多路复用?原始的server,处理多个连接的方法,有两种:1)一个while循环,不断去轮询,检测每一个socket是否有消息,并处理;2)...

  • mutex, spinlock, cas

    1.多线程数据共享,资源保护方法:1)mutex如果获取不到锁,让出CPU,将线程加入等待队列。 2)spinlock如果获取不到锁,则继续死循环检查锁的状态,如果是lock...

  • 120
    Hadoop生态圈与Zookeeper应用实践

    1. 上传、解压zookeeper安装文件 tar -zxvf zookeeper-3.4.10.tar.gz 2. 创建软连接 ln -s /bigdata/zookeep...