月度: 九月 2017

分布式系统事务一致性的几种解决方案

写在前面 在 OLTP (联机事务处理)系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的 Bob 给 Smith 转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数据库。 我们通常只需借助开发平台中特有数据访问技术和框架(例如 Spring、JDBC、ADO.NET),结合关系型数据库自带的事务管理机制来实现事务性的需求。关系型数据库通常具有 ACID 特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 而大型互联网平台往往是由一系列分布式系统构成的,开发语言平台和技术栈也相对比较杂,尤其是在 SOA 和微服务架构盛行的今天,一个看起来简单的功能,内部可能需要调用多个“服务”并操作多个数据库或分片来实现,情况往往会复杂很多。单一的技术手段和解决方案,已经无法应...

好用的 vimrc 配置

强大且好用的vimrc配置,在本人实践开发中不断地更新迭代,现已托管到github。 感兴趣的朋友请移步github:https://github.com/haroldhoo/vimrc   预览图:

MongoDB 的查询优化

在Mysql中,对于查询优化的工作,除了对其平时的使用经验和对其源码的分析之外,有两个工具我们会经常用到,The Slow Query Log和Optimizing Queries with EXPLAIN。 同样,在MongoDB中也会有类似的工具可供我们使用。官方文档对其有详细的描述,它们分别是Locking Performance,Number of Connections,Database Profiler,Explain Results。其中,Database Profiler和Explain Results这两个工具与上述Mysql中的两个工具类似,并且也是最常用的,本文将主要对这两个工具的使用进行阐述。 Database Profiler 在MongoDB中,Database Profiler会收集数据库的读写操作、游标操作、和数据库命令。可以在数据库级别开启,也可以在实例级...

编译Nginx与Nginx模块