这一部分主要讲模块化技术的演变 上图展示了我们以前的一个数据交互逻辑,我们是按照页面来分的接口,然而,接下去我们的产品做了一个庞大的产品矩阵,导致我们的页面迅速膨胀 为了适配...
这一部分主要讲模块化技术的演变 上图展示了我们以前的一个数据交互逻辑,我们是按照页面来分的接口,然而,接下去我们的产品做了一个庞大的产品矩阵,导致我们的页面迅速膨胀 为了适配...
2019年开始,业务开始了突飞猛进的发展,我们的日活基本在30~100万之间,需求越来越多、越来越复杂,尤其是面向UI交互的变化是非常频繁的,光详情页就有9个版本之多。 面对...
上文提到我们对内部统一由third库来支持,时间久了之后,出现了越来越多的需求,我们通过目前的运营后台的开发已经无法快速的满足了。比如,运营做了一个活动,想快速的看数据;这个...
有人会问过我,我们是怎么抗住百万日活的?其实这个问题很难回答,因为支持这样的高并发并没有什么难度,如果一定要讲的话,我会把一个链路里的请求进行一下拆解,来分段讲解下思路 先看...
之前说到,我们的慢sql因为早期的程序员都很初级,因此,线上跑的慢sql满天飞;虽然做了DB隔离,把慢sql的影响局限在各自的微服务内,但还是要去解决。 当时的环境是,我们的...
我伴随公司走了4年了,我觉得有必要把我这四年来经历的技术架构的演进沉淀下来分享给大伙,里面有些内容不一定100%准确,因为有些已经记不太清楚了,如有偏差,请反馈给我哈,谢谢。...
自从我接手公司的时候,公司的数据库基本就是单点,为了省钱,一律低配,那个时候的数据库和现在用的一样,对于业务库,我们还是用的阿里云的RDS(MYSQL)。 我记得当时线上就一...
磁盘顺序读写差不多600M/s, 随机100K/s
写完数据后,目标对象的CPU的缓存行本来就是最新的;但面对多核CPU就会有这样的问题,最新的改写的变量不会同步到其他CPU的缓存行上,导致拿到的数据是旧的,这就是内存屏障的问题。
CPU缓存行CPU缓存 执行程序是靠运行CPU执行主存中代码,但是CPU和主存的速度差异是非常大的,为了降低这种差距,在架构中使用了CPU缓存,现在的计算机架构中普遍使用了缓存,分...
前言:为什么传统数据库使用B树较多,而大数据存储使用LSM树较多?kudu为什么比hbase更适合支持OLAP查询? 上一篇场景和挑战 提到数据系统最基本的需求就是数据存取,...
JIT概念 JIT:Just In Time Compiler,一般翻译为即时编译器,这是是针对解释型语言而言的,而且并非虚拟机必须,是一种优化手段,Java的商用虚拟机Ho...
一、同步调用 默认情况下,我们通过Dubbo调用一个服务,需得等服务端执行完全部逻辑,方法才得以返回。这个就是同步调用。 但大家是否考虑过另外一个问题,Dubbo底层网络通信...
背景:后端为了能保证前端可以快速接入,在开发早期就要提供接口API文档,我们使用swagger管理起来的。但因为接口文档给出的过早,无法保证后面不去变更,这样会产生几个问题 ...
TCP协议,它是如何解决网络传输不可靠的问题。这其中有个很关键的部分,就是我们的滑动窗口协议。 从工程学角度上,我们来看一看滑动窗口协议,它到底解决了一个怎样的问题? 滑动窗...
文章摘自于:https://www.cnblogs.com/yrpen/p/3777963.html pagecache:文件系统层级的缓存,从磁盘里读取的内容是存储到这里,...
(1)select==>时间复杂度O(n) 它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,...
@37_1478 红黑树不是平衡二叉树,你可以理解为,去掉红色节点,他就是个平衡二叉树。
但它的红节点可以填充在黑色节点中间,不需要像平衡二叉树一样不断地去重新平衡,因此会稳定一些。
一篇炒鸡棒的解释红黑树的文章(转载)0 、前言 红黑树是软件工程中非常重要的数据结构,在很多的工程领域都有它的身影,比如java的treemap、linkedhashmap,linux内核、linux的高并发多...
KAFKA推送消息用到了sendfile,落盘技术用到了mmap,DMA贯穿其中。 先说说零拷贝 零拷贝并不是不需要拷贝,而是减少不必要的拷贝次数。通常是说在IO读写过程中。...
一、mmap基础概念 mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样...
首先,我们先来看看一次查询/更新语句流程图 mysql不是每次数据更改都立刻写到磁盘,而是会先将修改后的结果暂存在内存中,当一段时间后,再一次性将多个修改写到磁盘上,减少磁盘...