【译】Node.js 垃圾回收

作者:JerryXia | 发表于 , 阅读 (20)
|  Hits在这篇文章中,你可以学到 Node.js 的垃圾回收 (以下简称 GC ) 是怎么工作的,你写下的代码在后台发生了什么,以及内存是如何释放的。
Node.js 应用中的内存管理每个应用都需要内存才能正常运行。内存管理能动态的分配内存块给需要的程序,在不需要时释放掉,以便能重复使用。
应用级的内存管理可以是手动或自动的。而自动内存管理往往涉及到 GC。
下面的代码片段展示了在 C 中如何使用手动内存管理分配内存:
1234567891011121314151617181920212223242526#include <stdio.h>#include <stdlib.h>#include <string.h>int main() {   char name[20];   char *description;   strcpy(name, "RisingStack");   // memory allocation   description = malloc( 30 * sizeof(char) );   if( description == NULL ) {   ...阅读全文

Why HTTP/2 ?

作者:JerryXia | 发表于 , 阅读 (26)
HTTPS 和 HTTP/2 的安全性明显优于 HTTP
计算耗时相比于HTTP,HTTPS & HTTP/2 加解密过程中存在额外的计算耗时,特别是首次连接建立的 TLS 握手过程中的非对称加解密 (30ms+)。
首次请求建立前的 RTTHTTP  最坏耗时 2 个 RTT:
域名解析,耗时 1 个 RTT (缓存)TCP 三次握手,耗时 1 个 RTT一般耗时 1 个 RTT
HTTPS  最坏耗时 9 个 RTT:
域名解析, 耗时 1 个 RTTTCP 三次握手,耗时 1 个 RTTHTTP 重定向 HTTPS 及后续握手 耗时 2 个 RTT (开启 HSTS)* 302 过程,耗时 1 个 RTT* TCP 重新握手,耗时 1 个 RTTTLS 完全握手过程 耗时 4 个 RTT + 1 个 DNS 解析 * TLS 完全握手 耗时 2 个 RTT* TLS 握手过程中的 CA 域名解析 耗时 1 个 RTT (缓存)* CA 站点 TCP 握手,耗时 1 个 RTT* [OCSP](https://en.wikipedia.org/wiki/    Onlin...阅读全文

【译】RESTful APIs, 一个巨大的谎言

作者:JerryXia | 发表于 , 阅读 (22)
重要更新我新增了关于 JSON-Pure APIs最佳实践的后续内容。但是在此之前,请先阅读下面的内容。
RESTful APIs 很好用,真的吗?如果你看过最近10年的互联网开发者简历或相关招聘信息,那么可以原谅你认为 RESTful APIs 是 Web 开发真神赐予的礼物。RESTful APIs 到处都是,甚至市场营销人员也把他们放在销售材料中推销给 CEO 和 HR.
所以 RESTful APIs 真的是一个好想法吗?在回答这个问题之前,让我们先看下 REST 的出处,以及 RESTful APIs 的定义。
REST 的起源?REST 流行起来是因为 Roy Fielding在他 2000 年的博士论文 Architectural Styles and the Design of Network-based Software Architectures中介绍并推荐了它。Roy 因为他对 web 开发,特别是 HTTP 规范的贡献而闻名。
什么是 RESTful APIs ?REST即表述性状态转移,是一种用于构建可扩展 web 服务的架构风格。Roy 提倡使用他在...阅读全文

追梦人

作者:JerryXia | 发表于 , 阅读 (26)
我孤单地沿着河水,一步步向远方走去,我忘了我要去哪里,我忘了我是谁……
风儿总是调皮,一遍又一遍都追问着我的过去,它不停地发出呼呼声,企图呼唤一个追梦人的记忆。
“我是谁?”我迷糊地望着身后,那里却只有一串浅浅的痕迹。我问风儿,风儿却也不语,只是一个劲儿地吹奏那亘古不变的旋律。
我摇了摇头,继续前行,隐约间听到了一声轻轻的叹息。风儿依旧在我身边盘旋,偶尔对着河面发出一声声低沉的咆哮。
惶惶间,斗转星移,海枯石烂。我甚至不知道自己走了多少个世纪,水声依旧清脆伴着风儿的旋律。隐约间,又飘过一声轻轻的叹息,唤醒了迷失自我的人。
我默默地站着河边,凝望着那滴涌上天空的水滴,它居然也是一个世界。一个私塾角落的课桌上,趴着一个男孩,伴着朗朗的读书声,一睡不起。
“他会有梦吗?”我望着他轻轻叹息,或许,前世的我也和他一样不思进取。水滴终于落地,带走了那个奇怪的世界。
我仍旧一步步走向未来,伴着风声,伴着水声……
隔着水汽,我看到了一个素衣恬静的少女,静静地坐在河边,手持画笔,全神贯注。
或许,我的前行会打破这宁静的美丽,我远远地站立,看着她,看着她的画笔。我们都在画画,一个用手,一...阅读全文

DRBD Centos6.5(64bit)编译安装,双主模式

作者:JerryXia | 发表于 , 阅读 (37)
一、简介DRBD(Distributed Rep;icate Block Device)是基于块设备在不同的高可用服务器之间同步和镜像数据的软件,通过它可实现在网络中的两台服务器之间基于块设备级别的实时或者异步镜像或同步复制。
DREB可以理解为网络的raid1。
Raid1:其原理就是将一块硬盘的数据以相同位置指向另一块硬盘的位置。RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。RAID1是将一个两块硬盘所构成RAID磁盘阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”。块设备可以是磁盘分区、LVM逻辑卷、整块磁盘。
二、单主模式和双主模式单主模式:一个集群内一个资源在任何给定的时间内仅有一个primary角色,另一个为secondary。文件系统可以是ext3、ext4、xfs等。
单主模式下,在primary节点上有如下操作:格式化: mkfs.ext4 /dev/drbd1,然后将/dev/drbd1挂载到之前创建的/db目录。在...阅读全文