1 |
|
首页 | 归档 | 分类 | 标签 | 关于 |
|
1 |
|
开始的时候,为了实现一个服务器可以支持多个客户端连接,人们想出了fork/thread等办法,当一个连接来到的时候,就fork/thread一个进程/线程去接收并且处理请求。
到了80年代,计算机网络开始成型,越来越多的用户进行网络连接,但是之前的fork/thread模型在高并发场景快不行了。1983年,发明了select。
对应的编程模型就是:一个连接来了,就必须遍历所有已经注册的文件描述符,来找到那个需要处理信息的文件描述符,如果已经注册了几万个文件描述符,那会因为遍历这些
已经注册的文件描述符,导致cpu爆炸。
到2002年,epoll出现了,于Linux 2.5.44首度登场。
操作系统的核心是内核,为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操作系统将虚拟空间划分为两部分。
Qt具有跨平台的特性,可选择QWidget、QQuick。整个包比较大。虽然可以根据实际情况去掉一部分动态库和文件,还是比较大。
官网:https://bitbucket.org/chromiumembedded/cef/src/master/
是一个基于Google Chromium 的开源项目。Google Chromium项目主要是为Google Chrome应用开发的,而CEF的目标则是为第三方应用提供可嵌入浏览器支持。CEF隔离底层Chromium和Blink的复杂代码,并提供一套产品级稳定的API,发布跟踪具体Chromium版本的分支,以及二进制包。
通过封装接口, 然后由chromium回调到自己的程序, 驱动整个程序运行。
个人认为选择CEF的主要原因有以下几点:
某些请求一直返回502 Bad Gateway的错误,查看服务端的error日志,显示Connection reset by peer。当时的场景是一个每隔一分钟的定时脚本
每次运行时,获取需要处理的数据,同步请求某个服务端接口进行文件上传。猜测是这个接口请求响应很慢,一分钟后又再次请求同样的接口而出现问题。
修改接口对应的逻辑,让这个接口能快速响应;此问题消失。查阅资料,Nginx的响应有几个参数设置: