还是直接用官方原图解说 服务端:可以理解成对外公开的接口 被调用时候响应流程 的底层封装 (响应端)NetThread: 收发包,连接管理,多线程(可配置),采用epoll ET触发实现,支持tcp/udp;BindAdapter: 绑定端口类,用于管理Servant对应的绑定端口的信息操作;Ser ...
分类:
其他好文 时间:
2019-09-25 16:10:39
阅读次数:
80
0 Concurrency and Parallelism当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。区别:并发和并行是即相似又有区别的两个概念,并行是指两个或者多个事件在同一时刻发生;而并发是指两... ...
分类:
其他好文 时间:
2019-09-25 15:23:31
阅读次数:
101
场景:mac 下导入的 ‘select’ 包 import select,然后在 主函数 中创建的 epoll 对象 epl = select.epoll(),运行报错如下 python官方文档介绍 答案:仅仅支持Linux2.5.44或更高版本。 参考: https://blog.csdn.net ...
分类:
其他好文 时间:
2019-09-25 00:54:00
阅读次数:
148
简洁易用的C++11网络库,From:https://github.com/yedf/handy 在整理过去的资料过程中,发现过去有关注过这一个网络库,简单看了一下属于轻量级的实现,因此本文将对该库进行简单的学习之旅,目标是对网络基础知识进一步巩固。 编译和运行 库目前实现了linux和mac环境, ...
分类:
其他好文 时间:
2019-09-20 22:53:10
阅读次数:
79
linux中的计划任务,最小的单位只能到分钟级别,如有业务在秒级单位的计划,crontab将无法完成。而swoole_timer是基于timerfd+epoll实现的异步毫秒定时器,为我们实际提示了很好的解决方案。 一次性定时器 效果: 周期性定时器 ...
分类:
其他好文 时间:
2019-09-19 14:33:08
阅读次数:
87
#定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数。worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /var/ ...
分类:
其他好文 时间:
2019-09-17 09:40:59
阅读次数:
107
写在前面 epoll是开发linux高性能服务器的必备技术至,epoll本质,是服务端程序员的必须掌握的知识。 七、epoll的原理和流程 本节会以示例和图表来讲解epoll的原理和流程。 创建epoll对象 如下图所示,当某个进程调用epoll_create方法时,内核会创建一个eventpoll ...
分类:
其他好文 时间:
2019-09-15 10:59:43
阅读次数:
80
一 、介绍 cellnet是一个组件化、高扩展性、高性能的开源服务器网络库 git地址:https://github.com/davyxu/cellnet 主要使用领域: 游戏服务器 方便定制私有协议,快速构建逻辑服务器、网关服务器、服务器间互联互通、对接第三方SDK、转换编码协议等 ARM设备 设 ...
分类:
其他好文 时间:
2019-09-13 21:42:00
阅读次数:
164
Redis架构 1.1.问题 redis是单线程,单实例,为什么并发那么多,依旧很快呢? 回答:因为调用了系统内核的epoll 1.2.Linux的早期版本 Linux有Linux kernal,我们的客户端,进行连接,首先到达的是Linux kernal,在Linux的早期版本,只有read和wr ...
分类:
其他好文 时间:
2019-09-13 01:49:52
阅读次数:
120
前言 早期操作系统通常将进程中可创建的线程数限制在一个较低的阈值,大约几百个。因此, 操作系统会提供一些高效的方法来实现多路IO,例如Unix的select和poll。现代操作系统中,线程数已经得到了极大的提升,如NPTL线程软件包可支持数十万的线程。 I/O多路复用 select select 允 ...
分类:
其他好文 时间:
2019-09-09 14:41:09
阅读次数:
72