高并发高性能服务器是如何实现的
k8s技术圈
共 4549字,需浏览 10分钟
·
2020-12-24 01:20
当在读这篇文章的时候,你有没有想过,服务器是怎么把这篇文章发送给你的呢?
说简单也简单,不就是一个用户请求吗?服务器根据请求从数据库中捞出这篇文章,然后通过网络发回去。
说复杂也复杂,服务器是如何并行处理成千上万个用户请求呢?这里面涉及到哪些技术呢?
这篇文章就来为你解答这个问题。
多进程
编程简单,非常容易理解 由于各个进程的地址空间是相互隔离的,因此一个进程崩溃后并不会影响其它进程 充分利用多核资源
各个进程地址空间相互隔离,这一优点也会变成缺点,那就是进程间要想通信就会变得比较困难,你需要借助进程间通信(IPC,interprocess communications)机制,想一想你现在知道哪些进程间通信机制,然后让你用代码实现呢?显然,进程间通信编程相对复杂,而且性能也是一大问题 我们知道创建进程开销是比线程要大的,频繁的创建销毁进程无疑会加重系统负担。
多线程
Event Loop:事件驱动
event 处理event的函数,这一函数通常被称为event handler
while(true) {
event = getEvent();
handler(event);
}
事件来源:IO多路复用
问题:阻塞式IO
非阻塞IO
基于事件编程的难点
更好的方法
总结
评论
httpbeastNim 实现的高性能多线程 HTTP 服务器
httpbeast是使用Nim语言编写的高性能、多线程HTTP1.1服务器。主要特性基于Nimselectors模块构建,可以有效地利用Linux上的epoll和macOS上的kqueue自动并行化,
httpbeastNim 实现的高性能多线程 HTTP 服务器
0
Aurora高性能高并发框架
Aurora是一个建立在Lightning之上的高性能高并发框架,底层由Phalocn+Swoole组合驱动,专为丧心病狂的极限性能打造。她适用于需要支持高并发的场景,如API接口、微服务等。亮点Fe
Aurora高性能高并发框架
0