高可用性高并发编程开发基础知识分享
高可用性高并发编程开发基础知识分享
高并发高可用性等都是程序员在开发软件的时候需要重点满足的一个编程需求,而今天我们就通过案例分析来了解一下,高可用性高并发编程开发基础知识分享。
多级缓存,静态化
客户端页面缓存(httpheader中包含Expires/CacheofControl,lastmodified(304,server不返回body,客户端可以继续用cache,减少流量),ETag)
反向代理缓存
应用端的缓存(memcache)
内存数据库
Buffer、cache机制(数据库,中间件等)
索引机制
哈希、B(B+)树、倒排、bitmap
哈希索引:适合综合数组的寻址和链表的插入特性,可以实现数据的快速存取。
B(B+)树索引:适合于查询为主导的场景,避免多次的IO,提高查询的效率。
倒排索引:实现单词到文档映射关系的佳实现方式和有效的索引结构,广泛用在搜索领域。
Bitmap:是一种非常简洁快速的数据结构,他能同时使存储空间和速度优化(而不必空间换时间),适合于海量数据的的计算场景。
并行与分布式计算
任务切分、分而治之(MR)
大规模的数据中,数据存在一定局部性的特征,利用局部性的原理将海量数据计算的问题分而治之。
MR模型是无共享的架构,数据集分布至各个节点。处理时,每个节点就近读取本地存储的数据处理(map),将处理后的数据进行合并(combine)、排序(shuffleandsort)后再分发(至reduce节点),避免了大量数据的传输,提高了处理效率。
多进程、多线程并行执行(MPP)
并行计算(ParallelComputing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器/进程/线程来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。
和MR的区别在于,它是基于问题分解的,而不是基于数据分解。