浅谈React 16中的Fiber机制
九月份关于 React 开源协议的话题在社区闹得沸沸扬扬,所幸最后以 Facebook 宣布遵循 MIT 进行开源告终,但由此也足以看出 React 在前端圈的影响力。 作为 Facebook 前端出品的当门红,React 也迎来了一次大的升级,引入了最新的核心调度算法即 Fiber 机制,这是 React 基于 Fiber 调度的第一个版本,其次还增加了一些呼声高的新特性,…
Read More九月份关于 React 开源协议的话题在社区闹得沸沸扬扬,所幸最后以 Facebook 宣布遵循 MIT 进行开源告终,但由此也足以看出 React 在前端圈的影响力。 作为 Facebook 前端出品的当门红,React 也迎来了一次大的升级,引入了最新的核心调度算法即 Fiber 机制,这是 React 基于 Fiber 调度的第一个版本,其次还增加了一些呼声高的新特性,…
Read More之前的 文章 讲述了我们重塑NSQ的目的和目标, 接下来我们将详细描述下每个功能的具体技术细节. 重构后架构图 首先, 看一下重构后的整体架构图: 原来的几个NSQ组件大部分功能是复用的, 图中新增的就是元数据存储服务-etcd, 以及数据同步和HA处理逻辑. 改造topic queue 为了增加副本和其他特性, 首先需要改造的就是nsq的topic数据写入方式, 要保证数据最终落盘, 才能继续后面的改造. 所以我们第一步重构数据写入逻辑, 这块逻辑本身并不依赖分布式功能, 可以独立重构. 数据落盘 原版的topic写入流程是通过golang里面的chan来做的, 只有超过chan容量之后, 才会落盘. 但是chan有几个缺点, 首先是内存数据,…
Read More写在最前 可能很多同学跟我原来一样,觉得前端静态代码校验无非是告诉你代码缩进等格式问题,加上本身自己写代码就比较注意格式问题,所以觉得前端代码校验没什么必要。但其实前端代码校验能带给我们的远不止这些。 第一个例子 某天我在给页面添加链接的时候写下了如下代码: <a href="https://www.youzan.com" target="_blank">点我</a> 正当我想继续的时候,突然发现我的编辑器提醒我这行代码有错误(使用…
Read More为什么需要一个发号器 在使用数据库时,表的主键经常会使用数据库的自增(auto_increment)来产生。这当然很方便也很高效。但是使用自增也会带来一些麻烦。如果从一个数据库以外的地方,也就是发号器来产生全局唯一 ID,这些问题就可以得到解决,生活就可以更美好。 难以适应分片场景 在采用数据库分片时,如果使用数据库自增 ID,不同分片上会产生相同的 ID。单靠 ID 无法唯一标示一个对象,还需要额外加上分片字段才行。如果需要将 ID…
Read More一、前言 在互联网时代,业务规模常常出现爆发式的增长。快速的实例交付,数据库优化以及备份管理等任务都对DBA产生了更高的要求,单纯的凭借记忆力去管理那几十套DB已经不再适用。那么如何去批量管理这些实例的备份、元数据、定时脚本和快速实例交付就成了急需解决的的问题。 二、数据库的标准化 在实现MySQL的自动化运维的过程中,最痛苦的无非是目录的不统一,配置文件的混乱以及DB主机的不标准,而这些不标准的环境会让自动化运维的路途荆棘重重。所以首先我们将相应的DB主机以及目录做了标准化,将以前不符合的标准的主机和实例进行改造。 一台机子上所有实例,都是在统一的目录下,通过端口进行区分,例如my3306,my3307。然后在my3306下面创建对应的数据目录、日志目录、…
Read More