低延时核心思想
1、 减少网络中转环节,提高网络速度。减少跳点;增加带宽,使用千兆、万兆网卡,甚至InfiniBand。
2、 提高数据处理速度,提高处理器速度,使用内存计算技术,使用并行计算等高性能处理技术。
3、 减少磁盘IO操作、同步操作等,以降低接口延迟。
解决的问题
1、 数据可靠性。在减少数据落地的情况下,保证数据不丢失。采用异步写磁盘等技术保证数据可靠性。
2、 吞吐量。对大规模的数据需要保证数据处理速度,分布式计算的协调和架构。
3、 高可用、容错率等。
主要体现的点
内存的数据计算和管理
通过哈希链表的方式的内存数据,实现增删改查等操作,同时通过内存文件和磁盘文件的映射机制,实现数据的持久化备份,并解决读写锁机制等核心问题,这些实际都是内存数据库的一种简单实现。很大效率的提高数据计算和共享的速度。
高并发异步服务框架
基于异步Socket完成,实现稳定可靠的高并发的服务。在行业发展的过程中,出现的其他高性能网络框架如ACE、Libev等一直是数据类、游戏类服务使用的基础框架。使用C\S架构,并通过数据推送技术尽快的将有效数据发送到客户端。所有实时数据都是采用流的方式进行处理和发送,这也是早期流式计算的雏形。即使在B\S大行其道的很长时间内,这种架构仍然是对低延时需求最合理的解决方案。如WebSocket技术,实际上是完善BS架构在实时数据方面表现的不足。
消息对列缓冲
消息缓冲,通过基本的数组或链表等结构,实现数据缓冲,提高系统的吞吐能力。值得一提的是对于有些采用非可靠传输协议(UDP、RDP等)的系统,通过时间戳或序列号等方式,实现数据重传机制,保证数据的完整性,如一些视频直播系统或流媒体系统。
文件存储系统
以低成本来完成数据的存储和组织,并实现检索和装载等。