
微服务治理:APM-SkyWalking-PHP内核扩展源码分析
SkyWalking APM作为服务遥测的关键技术点,为了能够更好地运用这项技术,我们需要拥有把握这项技术的底层能力。目前公司在PHP领域存活不少业务系统,针对PHP领域的APM技术,我们首先从分析这款PHP内核扩展程序下手。一. 总体架构PHP内核在php-fpm运行模式下是短生命周期,短生命周期的脚本运行如果直接连接SkyWalking的oap-server会造成大量的性能损耗,而且ph...

PHP-rdkafka 内核扩展相关源码分析
这篇文章主要针对PHP生态的的kafka组件 php-rdkafka 进行相关的内核源码分析,方便大家把握组件的相关使用,目前文章主要针对kafka生产者部分。一. 样例PHP代码public function __construct($config)
{
$conf = new \RdKafka\Conf();
$conf->set('meta...

Swoole协程版curl源码剖析
Swoole协程版curl源码剖析一. 背景描述2019年6月5日,Swoole作者宣布在4.4版本后开始初步支持协程版本的Curl。我在原来的研究分析中指出PHP内核对于curl部分的支持是建立在libcurl库上,swoole作者也表达因为PHP内核建立在libcurl基础上,造成了swoole无法直接对于libcurl内部的socket操作进行钩子化。那么,最新版的swoole是采用什...

PHP-CURL-Guzzle-HTTP-连接复用内核原理
PHP-CURL连接复用内核原理0.写在前面PHP是一个时代的产物,它的底层支持是C语言,因此它在CPU密集型计算或者系统内核调用上有天生的优势,Zend引擎把PHP执行生命期分成了五个阶段1,这五个阶段并不是全部都能常驻进程,这种模式下,对于很多使用场景会造成不好的影响,比如网络IO.对于网络IO中的HTTP请求 , 很多工程师使用 php-curl 系列函数 . 所以这篇文章将从内核角度...