-
如果设置消息发送的方式为异步,则多条消息会被整合进行批量发送。既可以每隔一定时间发送一次,也可以累积到固定条数发送一次。
-
压缩,配合批量发送,从而减少网络损耗。固然压缩、解压缩会耗费CPU的资源,但相对于减轻的网络损耗,还是值得的。单条信息的压缩意义不大。
-
顺序IO。相比较随机IO,减少了硬盘磁头寻道的时间,仅需很少的扇区旋转,速度得到很大的提升。消费者通过偏移量来读取数据。
-
MMF(Memory Mapped Files)。通过操作系统的Page,实现了文件到物理内存的映射,对物理内存的操作会直接同步到硬盘,省下了用户空间到内核空间的复制。其缺点就在于并不可靠,一旦服务器宕机,而数据又没有同步到硬盘上,就会造成数据丢失。可以设置主动刷新进行规避。
-
sendfile。从服务器读取静态文件的标准顺序是:硬盘文件——页缓存——用户空间缓存——Socket缓冲区——网卡。而使用sendfie方法则省去了与用户空间的交互,顺序是:硬盘文件——页缓存——Socket缓存——网卡。
-
MMF与sendfile,都使用了零拷贝技术,提高IO速度。
Kafka为什么速度快
原创mb5fe559d8b9ae4 ©著作权
©著作权归作者所有:来自51CTO博客作者mb5fe559d8b9ae4的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java 监听 sqlserver 数据库的变化
java 监听 sqlserver 数据库的变化
Server SQL Java -
Redis处理速度快的原因
Redis 之所以能在处理数据时表现出极高的速度,是通过多个层面的优化设计实现的,包括内存存储、单线程模型、高效的数据结构、持久化机制等。
redis 数据库 缓存 Redis 数据