概述 Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。 主要应…
组播IP地址 组播地址是分类编址的IPv4地址中的D类地址,又叫多播地址,他的前四位必须是1110,所以网络地址的取值范围是224~239。 组播地址范围 地址 说明 224.0.0.0-224.0.0.255 为路由协议预留的永久组地址 224.0.1.0-231.255.255.255 /233…
在平时php-fpm的时候,可能很少人注意php的变量回收,但是到swoole常驻内存开发后,就不得不重视这个了,因为在常驻内存下,如果不了解变量回收机制,可能就会出现内存泄露的问题,本文将一步步带你了解php的垃圾回收机制,让你写出的代码不再内存泄漏。 写时复制 首先,php的变量复制用的是写时复…
什么是多路复用 IO多路复用(IO Multiplexing)一种同步IO模型,单个进程/线程就可以同时处理多个IO请求。一个进程/线程可以监视多个文件句柄;一旦某个文件句柄就绪,就能够通知应用程序进行相应的读写操作;没有文件句柄就绪时会阻塞应用程序,交出cpu。多路是指网络连接,复用指的是同一个进…
什么是I/O IO,Input/Output 简写,是指内存和外设之间的数据复制的过程. 输入是指数据从外设复制到内存中, 输出则是指数据从内存复制到外设。 根据外设种类可以分为磁盘IO和网络IO, 因为外设的数据读写速率较低以及 IO 会涉及到系统调用以及中断,所以通常都会比较耗时。在程序优化时思…
Reactor模型 Reactor模型是网络服务器端用来处理高并发网络 IO 请求的一种编程模型。 处理三类事件 连接事件:客户端→服务器的连接请求,对应服务端的连接事件 写事件:客户端→服务器的读请求,服务端处理后要写回客户端,对应服务端的写事件 读事件:服务端要从客户端读取请求内容,对应服务端的…
分片集群的由来 Redis从单个节点的架构方式演变到主从模式,提高了数据的可靠性以及相对较弱的高可用性;从主从模式到哨兵模式将高可用性提升到了一个新的高地。但是无论是主从还是哨兵模式下的集群,其实都是单个节点在处理客户端的命令,也即是说主节点拥有着所有的数据。那么如果数据量太大就必然会导致内存的暴增…
上一章我们讲如果Master宕机会导致部分数据未同步还会丧失写的功能。如何避免这种情况呢?哨兵登场了。 什么是哨兵 Sentinel(哨兵)是用于监控Redis集群中Master状态的工具,是Redis高可用解决方案,哨兵可以监视一个或者多个redis master服务,以及这些master服务的所…
Redis 提供了主从库模式,以保证数据副本的一致,主从库之间采用的是「读写分离」的方式。 读操作:主库、从库都可以接收; 写操作:首先到主库执行,然后,主库将写操作同步给从库。 实操 我们先启动三个redis容器 docker run -d -p 5670:6379 --name redis-ma…
Redis过期相关命令 Redis提供了四种命令来设置key的过期时间: EXPIRE key seconds // 设置多少秒后过期 EXPIREAT key timestamp 设置 key 过期时间的时间戳(unix timestamp) 以秒计 PEXPIRE key millisecond…