协程池加disruptor加epoll实现高性能服务器+数据中心项目总结
创始人
2025-05-29 03:12:18

先说一下disrutor和协程的实现。然后介绍服务器具体分析,以及迭代过程,项目困难,学到东西,压测数据等。最后结合数据中心项目。
实现思路
Disruptor的实现思路就是每一个数据都会有一个唯一自增的序号,用一个环形队列来存储数据,写入数据的时候先分配出可写的空间序号,然后再慢慢写数据,等到数据写完后再更新一下可读区域。这样因为每个线程独占一块空间写入数据,就不会有线程同步问题,唯一需要同步的地方是分配写入空间和更新可读区域。但是这两个操作都是非常简单的加操作,加锁太浪费,所以Disruptor直接使用原子变量加自旋等待来同步,获取极高的性能。
读取的时候则是先声明想读取的序号。然后就一直等待直到写入数据后更新的可读序号赶上想读取的序号。等待可以是CPU自旋等待或者放弃CPU时间片或者睡眠或者使用条件变量唤醒。此时可读序号之前的数据都是可读的,而读操作也不需要加锁。又可以获得极高的性能。读取后更新一下已读取序号,这样写入着就可以继续重复利用这块空间了。
当更新的可读序号大于想读取的序号的时候更可以批量的一次性读取,免于每次更新已读取序号浪费性能。

传统消息队列的缺点?
原始的单队列缓存,每个生产者或消费者对队列操作都需要加锁,因为push和pop都是对队列的写操作。队列每一个元素pop实际都delete了那个节点,对GC机制造成负担。
锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很大的损失。
CAS:

相关内容

热门资讯

中通面试题分享 redis有遇到过什么瓶颈 redis分布式锁怎么实现的,有哪些问题 布隆过滤器怎么实...
【Linux】GDB的安装与使... 安装安装gdb的具体步骤如下:1、查看当前gdb安装情况rpm -qa | grep ...
算法做题技巧:前缀和 什么是前缀 “前缀”是在计算机科学中广泛使用的一个数学术语。 从字面上解释,就是指一个...
家用轿车哪款比较好?家用轿车排... 本篇文章极速百科给大家谈谈家用轿车哪款比较好?家用轿车排行榜前十名2022,以及家用轿车排行榜202...
智能电表电量清零方法和智能电表... 今天给各位分享智能电表电量清零方法和智能电表故障分析及解决方法...的知识,其中也会对智能电表怎样复...
与中山公园有关的历史事件(中山... 今天给各位分享与中山公园有关的历史事件的知识,其中也会对中山公园故事进行解释,如果能碰巧解决你现在面...
上虞车辆违章查询系统官方入口(... 今天给各位分享上虞车辆违章查询系统官方入口的知识,其中也会对上虞区违章查询进行解释,如果能碰巧解决你...
记录--vue中封装一个右键菜... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 组件介绍 关于web...
xxl-job 的 API 接... 以下是使用 xxl-job 的 API 接口添加任务的 Java 源代码示例:impo...
【运维】运维常用命令 shell大全读取文件每一行内容文件是否存在数组定义和循环取值变量循环流程控制语句:c...
特斯拉降价引发新能源车市连锁反... 本篇文章极速百科给大家谈谈特斯拉降价引发新能源车市连锁反应,以及特斯拉降价背后的逻辑对应的知识点,希...
广东车辆违章查询系统官方入口(... 本篇文章极速百科给大家谈谈广东车辆违章查询系统官方入口,以及广东省车辆违章查询易车宝对应的知识点,希...
滴滴打车下架了吗?滴滴现在还能... 今天给各位分享滴滴打车下架了吗?滴滴现在还能用吗的知识,其中也会对滴滴打车已经下架了吗?进行解释,如...
只为更好-奔驰S320L刷ec... 本篇文章极速百科给大家谈谈只为更好-奔驰S320L刷ecu改善动力迟滞换挡顿挫,以及奔驰s320动力...
学习 Python 之 Pyg... 学习 Python 之 Pygame 开发魂斗罗(十二)继续编写魂斗罗1...
QT学习记录()QToolBa... QtoolBar是可以插入用ui设计的组件的。最终实现的效果如下 具体步骤如下: 创...
Unity --- 游戏案例 ... 1.如何在场景中标识出一个空游戏物体(对象集群) 1.选中该空游戏物体...
雪地胎费油吗(雪地胎比正常胎油... 本篇文章极速百科给大家谈谈雪地胎费油吗,以及雪地胎比正常胎油耗多多少对应的知识点,希望对各位有所帮助...
暖宝宝发热是什么原理(充电暖宝... 本篇文章极速百科给大家谈谈暖宝宝发热是什么原理,以及充电暖宝宝发热是什么原理对应的知识点,希望对各位...
蓝瘦香菇是什么意思(蓝瘦香菇的... 今天给各位分享蓝瘦香菇是什么意思的知识,其中也会对蓝瘦香菇的图片进行解释,如果能碰巧解决你现在面临的...
雅芳直销模式(雅芳营销模式) ... 本篇文章极速百科给大家谈谈雅芳直销模式,以及雅芳营销模式对应的知识点,希望对各位有所帮助,不要忘了收...
日志预警之Logstash和F... 日志预警 通常网上使用ELK作为基础进行搭建预警平台,例如ElastAlter...
怎么判断摩托车轴承坏了?摩托车... 本篇文章极速百科给大家谈谈怎么判断摩托车轴承坏了?摩托车的后轮轴承坏了还能骑...,以及摩托车后轮轴...
海龙燃油宝简介,海龙燃油宝分几... 今天给各位分享海龙燃油宝简介,海龙燃油宝分几种、海龙燃油宝成分的知识,其中也会对海龙燃油宝有效果吗进...
玛莎拉蒂怎么样(玛莎拉蒂车型及... 本篇文章极速百科给大家谈谈玛莎拉蒂怎么样,以及玛莎拉蒂车型及价格对应的知识点,希望对各位有所帮助,不...
物流货车常见货厢尺寸及载重量!... 今天给各位分享物流货车常见货厢尺寸及载重量!收藏,肯定用得着的!的知识,其中也会对物流货车车厢尺寸进...
生物发酵行业超大盛会,3月30... 随着市场回暖,经济复苏,转眼间距离备受业界关注的2023第十届国际生物发...
静态爬虫、词频统计、词云图部分... 文章目录1.网页抓取库Urllib2.网页解析库Beautifulsoup3.Shutil库...
世界上最帅的4款车,你都知道有... 今天给各位分享世界上最帅的4款车,你都知道有哪些吗?的知识,其中也会对世界上最帅的几辆车进行解释,如...
tf什么意思(黄金ETF什么意... 今天给各位分享tf什么意思的知识,其中也会对黄金ETF什么意思进行解释,如果能碰巧解决你现在面临的问...