坚实的幻想

ON A CLEAR DISK YOU CAN SEEK FOREVER

Python bottle 源码解析

简介 Bottle 是一个轻量级的 Python Web 框架,它的代码量只有 4300 行(为了突出其精简性,所有代码放在了一个文件中)。但是麻雀虽小,五脏俱全,Bottle 提供了一个 Web 框架有必须的基本功能,如: 路由,支持动态的 URL 路由 模板,内置了模板功能,同时支持 mako, jinja2 和 cheetah 表单,文件上传,cookies,head...

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 字段是 *....

Nginx 配置详解

Nginx intro

Nginx(engine X) 是一个高性能的 HTTP 服务器和反向代理服务器,这款软件开发的目的是为了解决 C10k 问题。 Nginx 的架构利用了许多现代操作系统的特性,以实现一个高性能的 HTTP 服务器。例如在 Linux 系统上,Nginx 使用了 epoll,sendfile,File AIO,DIRECTIO 等机制,使得 Nginx 不仅性能高效,而且资源占用率非常低,...

HAProxy 反向代理的使用

High availability

HAProxy 是一款高性能的反向代理软件,它可以基于四层或七层进行反向代理,尤其适合于高负载且需要进行七层处理的 Web 站点。 HAProxy 主要有 1.5,1.4 和 1.3 三个版本。CentOS 6 的 EPEL 源中已经加入了 HAProxy 的 RPM 包,因此安装 HAProxy 直接使用 yum 安装即可。 相较与 Nginx,HAProxy 更专注与反向代理,因此它...