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
-
一张图片或Div不同位置点击事件
<!-- * @Author: Han * @Date: 2021-10-27 17:34:01 * @LastEditors: Han * @LastEditTime: 2021-10-27 17:36:35 * @FilePath: \Proje... 908 0 25-04-07 -
wordpress欲思主题yusi
欲思主题(Yusi2.0 )是从themebetter团队开发的D8主题修改而来的,所以欲思主题比D8主题更加优秀好用,不然欲思也就没有必要去修改D8主题... 681 0 21-07-12 -
html日期时间选择控件
983 0 21-06-02 -
NodeJs文本相似度去重脚本
文本相似度去重,是指对一批文本进行去重,只保留相似度较高的文本。相似度的度量方法有很多种,这里以编辑距离(Edit Distance)作为衡量... 951 0 25-04-07 -
佰通(buytone)一元夺宝系统
一元夺宝顾名思义,就是把一件商品平分成若干“等份”进行出售,每份1元钱,一个商品所有“等份”售出后,再从购买者中按照一个计算规则算... 645 0 21-06-24 -
特殊符号输入器5.1
想知道别人的特殊符号都是怎么打出来的吗?那么你可以利用特殊符号输入法软件来进行,这是由吾爱kastorm制作分享的一款专注于输入特殊符号... 723 0 25-05-06 -
【Galgame】什么?你还不知道什么是galgame!全网最详细的galgame一件套简评
著名评论家清风曾经说过:游戏区里不能没有galgame,正如西方不能没有耶路撒冷…… 我是清风~今天就给大家带来全社区最详细的galgame简评... 1311 0 24-12-11 -
Keynote 超越PPT的苹果商业幻灯片
在生活中,你总会和一种美丽邂逅。也许只是偶然看到几秒的画面,你心中会问,这是哪部电影呢?也许是转瞬即逝的一段旋律,你心中会回想,这... 933 0 24-05-24
发表我的评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~