Nginx配置解析
#==========================nginx全局配置==========================# # 指定 nginx 进程运行的用户,这里是 nginx,默认为nobody。 user nginx; # 指定 nginx 使用多少个 worker 进程处理请求,这里使…
函数sync fsync 和 fdatasync 的区别
缓冲 传统的UNIX实现的内核中都设置有缓冲区或者页面高速缓存,大多数磁盘IO都是通过缓冲写的。 当你想将数据write进文件时,内核通常会将该数据复制到其中一个缓冲区中,如果该缓冲没被写满的话,内核就不会把它放入到输出队列中。 当这个缓冲区被写满或者内核想重用这个缓冲区时,才会将其排到输出队列中。…
苹果内购JWS回调解析
JWS简介 JWS 也就是 Json Web Signature,是构造 JWT 的基础结构(JWT 其实涵盖了 JWS 和 JWE 两类,其中 JWT 的载荷还可以是嵌套的 JWT),包括三部分 JOSE Header、JWS Payload、JWS Signature。 这里的 Signatur…
惊群问题
惊群效应是什么 惊群效应(thundering herd)是指多进程(多线程)在同时阻塞等待同一个事件的时候(休眠状态),如果等待的这个事件发生,那么他就会唤醒等待的所有进程(或者线程),但是最终却只能有一个进程(线程)获得这个时间的“控制权”,对该事件进行处理,而其他进程(线程)获取“控制权”失败…
PHP8.1新特性
枚举(Enumerations) PHP 8.1使用enum枚举类型来取代一组常量,并获得开箱即用的验证。 <?php enum UserRole: string { case ADMIN = "1"; case GUEST = "2"; case WR…
Kafka简介与架构
概述 Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。 主要应…
IGMP协议
组播IP地址 组播地址是分类编址的IPv4地址中的D类地址,又叫多播地址,他的前四位必须是1110,所以网络地址的取值范围是224~239。 组播地址范围 地址 说明 224.0.0.0-224.0.0.255 为路由协议预留的永久组地址 224.0.1.0-231.255.255.255 /233…
PHP垃圾回收-初识
在平时php-fpm的时候,可能很少人注意php的变量回收,但是到swoole常驻内存开发后,就不得不重视这个了,因为在常驻内存下,如果不了解变量回收机制,可能就会出现内存泄露的问题,本文将一步步带你了解php的垃圾回收机制,让你写出的代码不再内存泄漏。 写时复制 首先,php的变量复制用的是写时复…
理解I/O多路复用
什么是多路复用 IO多路复用(IO Multiplexing)一种同步IO模型,单个进程/线程就可以同时处理多个IO请求。一个进程/线程可以监视多个文件句柄;一旦某个文件句柄就绪,就能够通知应用程序进行相应的读写操作;没有文件句柄就绪时会阻塞应用程序,交出cpu。多路是指网络连接,复用指的是同一个进…
各种的I/O
什么是I/O IO,Input/Output 简写,是指内存和外设之间的数据复制的过程. 输入是指数据从外设复制到内存中, 输出则是指数据从内存复制到外设。 根据外设种类可以分为磁盘IO和网络IO, 因为外设的数据读写速率较低以及 IO 会涉及到系统调用以及中断,所以通常都会比较耗时。在程序优化时思…