架构
文章平均质量分 83
Your_is_my_God
这个作者很懒,什么都没留下…
展开
-
面试中最爱问的海量数据处理题
一、海量数据处理所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。那解决办法呢?针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit-map/堆/trie树。针对空间,无非就一个办法:大而化小,分而治之(hash映射)。二、算法/数据结构基础1.Bloom FilterBloom Filter(BF)是一种空间效率很高的随原创 2021-11-03 11:54:37 · 462 阅读 · 0 评论 -
消息队列的使用场景
消息队列(Message Queue)“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂 ,包括对象等。队列是一种数据结构,先进先出,保证了顺序性。生产者:发送消息的一端。用于把消息写入到队列中消费者:从消息队列中,依次读取每条消息的一端。消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有Acti原创 2021-11-03 11:52:45 · 304 阅读 · 0 评论 -
二叉树深度优先遍历和广度优先遍历
二叉树深度优先遍历和广度优先遍历深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次。要特别注意的是,二叉树的深度优先遍历比较特殊,可以细分为先序遍历、中序遍历、后序遍历。具体说明如下:前序遍历:根节点->左子树->右子树 中序遍历:左子树->根节点->右子树 后序遍历:左子树->右子树->根节点广度优先遍历:又叫层次遍历,从上往下对每一层依次访问,在每一层中,从左往右(也可以从右往左)访问结点,访问完一层就进入下一层,直到没有结原创 2021-09-26 16:57:30 · 435 阅读 · 0 评论 -
如何设计高并发的架构
纵向和横向通用的设计方法主要是从「纵向」和「横向」两个维度出发,俗称高并发处理的两板斧:纵向扩展和横向扩展。 纵向扩展(scale-up) 它的目标是提升单机的处理能力,方案又包括:1、提升单机的硬件性能:通过增加内存、CPU核数、存储容量、或者将磁盘升级成SSD等堆硬件的方式来提升。2、提升单机的软件性能:使用缓存减少IO次数,使用并发或者异步的方式增加吞吐量。 横向扩展(scale-out) 因为单机性能总会存在极限,所以最终还需要引入横向扩展,通过集群部署以进一步提高并原创 2021-11-03 11:44:44 · 6485 阅读 · 2 评论