xhprof原理分析

2020-06-21

xhprof原理分析

今日一早看到有人star tidyway的 xhprof扩展,好奇性能分析在PHP中是怎么做的,就简单分析了下

发现实现原理很简单直接,简单记录下

项目地址: https://github.com/tideways/php-xhprof-extension

从源码上看...

Read More

并不是所有文件Append都是原子性的

2019-11-22

线上业务是否稳定?我们都是通过日志来观测的

如果日志有问题,那么我们监控也会跟着出现问题

一直以来,我们写日志都是通过append方式去追加到文件结尾。

而事实上文件的Append操作并不是原子性的,多进程或多线程同时append一个文件会导致文件内容混乱

操作是否原子取决于操作系统内buffer的长度

l...

Read More

良好的分层和规范比微服务更好

2019-09-18

微服务真的好吗?

一个完善的微服务对基础建设要求十分高,持续集成、自动化部署、全程监控、容器管理、运维自动化。

而拥有了这些才刚刚开始,多个项目的依赖关系需要链路跟踪整理。项目十分复杂后每次上线的时候很难快速上线。

多次系统之间引用调用性能极差

这不理智,也不现实

下面简单介绍下分层,我去年也讲过,批判过微...

Read More

如何使PHP IDE 识别__CALL魔法函数引用

2019-03-22

在写框架调用Service层的的时候,常常想在Controller和Service之间隔断一层,使用一个类去统一调用Service。好处很多Controller与Service之间隔离性提高,并且能够规范输入输出,能够拦截底层异常Exception。

具体模拟效果如下图:

class Servi...
      
Read More

swoole 4.x 连接池协程版本细节坑

2019-02-14

使用swoole 4.x协程版本后,系统资源利用率提高很多,与此同时发现很多开发习惯已经不同

自从看了王晶老师(半桶水)在微信公众号php饭米粒 里发表的文章后忍不住手痒跟随教程认真轮了一个php框架 磨刀石项目,旨在深入了解协程,在试玩过程中碰到很多有意思的事情。今天感觉很经典分享一例

设计如下:

Read More
    

开源Http协议Kafka消费生产网关

2018-11-27
https://github.com/xcl3721/http-kafka-gateway

使用http接口请求消费,生产数据到kafka

要求 kafka 0.9+ 版本,jdk8

目前仅支持JAAS安全验证的kafka

QPS 1w

主...

Read More

PHP微服务使用Redis实现事务协调

2018-11-27

微服务如何简单的实现一致性事务,使用redis,多个进程一起刷redis,隔一秒获取一次某个list,如果list内的数据个数达到预期个数那么就一起提交完成了。

成功:如一个事情六个步骤,list内出现不同的key六个,那么就是完成了。

失败:如果其中有一个fail字符的key那么就是有人失败了,回滚

二次提交确认:如果第一步六个都成了,...

Read More