MC系统架构是如何布局的?
Mc 基于 Libevent 开发实现了多线程网络模型。Mc 的多线程网络模型分为主线程、工作线程。这些线程通过多路复用 IO 来进行网络 IO 接入以及读写处理。在 Linux 下,通常使用 epoll。通过多路复用 IO,特别是 epoll 的使用,Mc 线程无须遍历整个被侦听的描述符集,只要在被通知后遍历 Ready 队列的描述符集合就 OK 了。这些描述符是在各项准备工作完成之后,才被内核 IO 事件异步通知。也就是说,只在连接做好准备后,系统才会进行事件通知,Mc 才会进行 I/O 操作。这样就不会发生阻塞,使 Mc 在支持高并发的同时,拥有非常高的 IO 吞吐效率。
Mc 除了用于 IO 的主线程和工作线程外,还用于多个辅助线程,如 Item 爬虫线程、LRU 维护线程、哈希表维护线程等,通过多线程并发工作,Mc 可以充分利用机器的多个核心,实现很好的网络 IO 性能和数据处理能力。
Mc 通过哈希表即 Hashtable 来快速定位 key。数据存储时,数据 Item 结构在存入 slab 中的 chunk 后,也会被存放到 Hashtable 中。同时,Mc 的哈希表会在每个桶,通过 Item 记录一个单向链表,以此来解决不同 key 在哈希表中的 Hash 冲突问题。 当需要查找给定 key 的 Item 时,首先计算 key 的 Hash 值,然后对哈希表中与 Hash 值对应的 bucket 中进行搜索,通过轮询 bucket 里的单向链表,找到该 key 对应的 Item 指针,这样就找到了 key 对应的存储 Item
-
纯css二级导航栏
426 0 21-06-02 -
jquery 3D各种图片切换方式
353 0 21-05-17 -
SketchUp2020草图大师破解版-功能强大的三维建模软件
SketchUp在其创作过程能够充分表达设计师的思想,使得设计师可以直接在电脑上进行十分直观的构思,是三维建筑设计方案创作的优秀工具。一键... 722 0 24-03-02 -
在线音乐播放器
一款开源的基于网易云音乐api的在线音乐播放器。具有音乐搜索、播放、下载、歌词同步显示、个人音乐播放列表同步等功能。 371 0 21-05-17 -
C语言函数参考手册
C语言作为当前程序开发中最流行的编程语言之一,以其简单、高效、快捷、方便的特性吸引了大批用户。根据笔者使用C语言的经验,相信对C语言... 1144 0 24-05-24 -
仿站小工具能够抓取网页源码
仿站小工具能够抓取网页源码,自动检测网页编码,远程下载网页,同时支持同域网页和Css文件中分as家裁到本地实现不同文件按相对路径实现归... 1188 0 24-05-24 -
办公室工作日程通用表格 - 企业管理表格
当天备忘的重点.doc当天领导的行动掌握表.doc当天部属的行动掌握表.doc日程表.doc一年重点实施日程表.doc一周日程表.doc四季日程表.doc日程... 965 0 24-07-31 -
全解密无授权影视小程序电影小程序
环境php7.0 — fileinfo–redis mysql5.6 nginx 1.18添加站点上传后端文件后端文件修改/wxapi/config/dbs.php后端文件修改/application/database.php设置ssl设置maccms伪静态 408 0 21-07-05
发表我的评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~