Kafka、Redis、ES中间件操作系统底层的优化

本文意在利用知名中间件 Kafka、Redis、ES ,来复习上一篇操作系统底层知识的学习
 
上一篇地址:关于IO多路复用,文件的Page  Cache请看: https://www.cnblogs.com/lean-blog/p/13559556.html
 
kafka吞吐量高的原因:
  1. 数据读写为顺序读写,减少了
  2. 数据读取为零拷贝 -pagecache
  3. 数据分区存储,提高了读写的并行度
  4. 数据存储是经过压缩
  5. 批量读写操作
 
redis速度快的原因:
  1.      单线程,省去了多线程切换的问题
  2. 协议简单
  3. 数据内存储存,读取速度快
  4. 内部使用Epoll的IO多路复用机制
 
ES数据的写入流程:
     主要:write -> refresh -> flush
  • write:文档数据到内存缓存(),并存到 translog(日志保证数据不丢失)
  • refresh:内存缓存中的文档数据,到文件缓存(pageCache)中的 segment 。此时可以被搜到
  • flush 是缓存中的 segment 文档数据写入到磁盘(会清空对应数据的translog日志)
  • merge 将小的segment合并成大文件过程,提高搜索过程
 
 
原文地址:https://www.cnblogs.com/lean-blog/p/13560237.html