文章列表

一个问题引发的 Nginx Rewrite 和 FastCGI 模块探索

July 31, 2016

问题背景 某日,线上出现了一个小问题。我们的 iOS 应用在上一次的发版中,由于测试不完整导致部分功能请求的接口 URL 出现了错误,业务功能受到了影响。鉴于 iOS 的审核机制,我们决定在服务端做兼容。 方案其实很简单,将类似如下请求转向新的地址: GET /foo => GET /foo/bar ...

Consul 搭建服务框架(使用篇)

July 10, 2016

在之前的 Consul 搭建服务框架(基础篇) 我们讨论了 Consul 的基础概念和特性。在这篇文章中,我们通过实践深入了解如何使用 Consul 搭建服务架构。 在搭建之前 在搭建之前,需要先明确我们要搭建的目标,如下图所示: 节点介绍 Consul Consul Server 节点,简单的...

Consul 搭建服务框架(基础篇)

July 05, 2016

近期,公司产品架构面临升级,伴随的产品架构的调整,技术架构应该做为强大的支撑存在。然而,强大的技术架构,面临的最大的问题是如何控制系统的复杂度。为了解决这个问题,我们准备使用 SOA 思想将系统服务化。 服务发现和治理,一直是服务化后所面临的一项课题。目前,致力于解决服务管理的工具有 ZooKeeper,etc...

I/O 多路复用

May 29, 2016

什么是多路复用 I/O 多路复用是为了解决进程或者线程被某个 I/O 系统调用而阻塞的技术。I/O 多路复用通过一种机制,监听多个描述符,一旦某个描述符处于就绪状态,能通知程序进行读写操作。 因此,I/O 多路复用机制设计上遵循以下原则: 当任何一个文件描述符 I/O 就绪时进行通知。 在有可用的文...

使用gdb调试PHP段错误

May 15, 2016

最近在灰度测试PHP7的过程中,php-fpm出现间歇性的段错误。系统的错误信息如下: php-fpm[7664]: segfault at 7f6ff4600000 ip 00007f6ff782176f sp 00007fff2e9c2fe8 error 4 in libc-2.12.so[7f6ff779...