坚实的幻想

ON A CLEAR DISK YOU CAN SEEK FOREVER

Python WSGI 初探

WSGI 是什么 在构建 Web 应用时,通常会有 Web Server 和 Application Server 两种角色。其中 Web Server 主要负责接受来自用户的请求,解析 HTTP 协议,并将请求转发给 Application Server,Application Server 主要负责处理用户的请求,并将处理的结果返回给 Web Server,最终 Web Server ...

Galera Cluster Essential Guide

The True Multi-master Cluster

数据库的高可用 在设计一个高可用架构时,各种不通类型的组件高可用的方案往往不同,其中往往可以大致分为: 有状态服务 无状态服务 其中又以有状态服务的高可用最难实现,而 MySQL 数据库的高可用则是这些服务中最为棘手的一个问题。数据库通常作为应用程序的数据存储服务,要实现数据库的高可用,必然要使用的技术就是数据的复制。对于 MySQL 来说,有这些复制方式: 主从复...

RabbitMQ 和 oslo.messaging

RabbitMQ 是一个消息队列系统,它实现了 AMQP 协议。在 OpenStack 中,RabbitMQ 被广泛的作为 RPC 中间件使用,在 OpenStack 核心项目如 Nova, Cinder, Neutron 等服务中,内部组件的 RPC 调用都是通过消息队列完成的,而 RabbitMQ 是 OpenStack 场景下使用最为广泛的消息队列组件。 RabbitMQ 本质上是一...

Linux中断和中断处理

众所周知,处理器的速度跟外围硬件设备的速度往往不在一个数量级上,因此,如果内核采取让处理器向硬件发出一个请求,然后专门等待回应的办法,显然差强人意。 轮询(polling)可能会是一种解决办法。它可以让内核定期对设备的状态进行查询,然后做出相应的处理。不过这种方法很可能会让内核做不少无用功,因为轮询总会周期性的重复执行。更好的办法是提供一种机制,让硬件在需要的时候再向内核发出信号。这就是中...

究极shell

Finally, a command line shell for the 90s

池建强老师曾经写过一篇终极 shell,为生活在水生火热中的 UNIX/Linux 用户普及了 zsh 的使用,池老师称之为「终极shell」。我想说的是,zsh 的确好用,但是逼格还不够,目前使用过最炫酷的 shell 非 fish shell 莫属,史称「究极shell」,实乃居家旅行装X吹牛的必备良器。 fish 的特性有: 开箱即用,不需要繁琐的配置 自动补全提示,杀手...

无后为大

胆怯的智慧还在犹豫的时候,勇敢的无知已经行动了 今天看到一个帖子,《有没有人不想要孩子是因为你自己还不确定存在本身的意义?》,从迈入社会开始,我就时常思考要不要孩子的问题,之前阅读过关军老师的《无后为大》,让我对这个问题有了更理性的认识,摘录一些片段在这篇日志里。 在周围人眼里,他们不能理解和容忍有人在这么神圣人生使命面前的迟疑,生儿育女这似乎是人这一辈子必须完成的使命之一。他们...

OpenSSL SAN 证书

使用 OpenSSL 制作一个包含 SAN(Subject Alternative Name)的证书

什么是 SAN SAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析。 先来看一看 Google 是怎样使用 SAN 证书的,下面是 Youtube 网站的证书信息: 这里可以看到这张证书的 Common Name 字段是 *....

负载均衡集群 LVS 详解

Loadbalancer & LVS

当服务器遇到性能瓶颈需要进行扩展时,一般来说有两种解决思路:Scale-up 和 Scale out,也称作垂直扩展和水平扩展。 垂直扩展 通常指增加 CPU 和内存,购买昂贵的高性能服务器 优点: 耗电量相比使用多台服务器要少 实施简单 缺点 价格太昂贵 由于资源的争用,服务器性能的增长会越来越小 有很大的硬件故障导致服务不可用的风险 受限制于供应...

用 awk 实现一个关系型数据库

AWK & relational DB

awk 的祖师爷 Brian W. Kernighan,写过一本 《The AWK Programming Language》,这本书一如 Brian W. Kernighan 的其他书,简明扼要却不乏深入。更厉害的是这本书在淘宝上的售价居然高达 1000 多。 书中用 awk + 纯文本数据模拟了一个微型的关系型数据库外加一个数据库查询语言编译器,看完真让我感觉脑洞大开。 本文将整个过...

计算机原理 —— 计算机是如何启动的

How computer booted

这是来自于 Gustavo Duarte 博客的一系列的计算机内部原理的科普文章,本人出于兴趣翻译过来。原文:How Computers Boot Up 上一篇文章讲了 Intel 系统的主板与内存映射。计算机启动是一个复杂的,充满黑科技的(原文是 hacky),多阶段的过程。这里是整个过程的概要图: 当你按下电源键的那一刻,计算机的的启动就开始了。当主板启动后,它开始初始化...