相关分享
Nginx 黑魔法:使用 NGX-PHP 模块低成本实现高性能应用
本篇文章分享一个和 Nginx 以及 PHP 有关的“黑魔法”:NGX-PHP 模块。通过这个方式,我们可以低成本的实现高性能应用,以及适合在服务器资源有限的情况下,同时体验到 Nginx 的高效以及 PHP 的灵活。如果你对 PHP 的印象还停留在“慢”,那么或许这篇文章可以帮助你打开新世界。
How to find the corresponding session in MogDB/openGauss from OS thread ID
当MogDB数据库由于某种原因占用了较大的系统负载,比如CPU占用接近100%,那么如何知道到底是数据库里的哪个会话或者哪些会话占用了资源?
在Oracle数据库中,这样的问题诊断,通常都会关联 v$session, v$process, 以及操作系统top命令或者ps命令中查到的操作系统进程ID。
但是MogDB本身是线程模型,在操作系统上只能看到一个进程号,那么该如何定位问题?
使用PHP Socket开发Yar TCP服务
Yar支持HTTP和TCP俩种Transporter, HTTP的是基于CURL,PHP中的Yar默认就是走的HTTP Transporter, 这个大家应该都不陌生, 但是基于TCP的, 可能大家会用的少一些。
事实上,我6年前也写过一个C的Yar server框架,叫做Yar-c, 代码地址在Yar-C at Github, 当时我们用这个框架,实现了高性能的微博白名单等服务,以供PHP端使用Yar Client来调用。
只不过,Yar C需要用C来写Handle, 可能对于不少PHPer来说,会稍微有点陌生,那今天我们尝试用PHP来写一个TCP的Server,来介绍下如何实现对Yar RPC协议的处理, 这个例子可以方便的结合Swoole等异步PHP框架,实现一个高性能的Yar TCP Server。 这个过程中, 会让大家了解Yar的RPC通信协议,以及捎带了解下Socket编程。
免费开源的CentOS替代方案,附地址
5 月 2 日消息 去年 12 月份,CentOS 官网正式宣布,将停止维护 CentOS Linux,并将更多资金和人力投入到 CentOS Stream 中。
而 Rocky Linux 是红帽宣布放弃 CentOS Linux 后,由 CentOS 联合创始人 Gregory Kurtzer 创建的 CentOS 发行版,旨在继承 CentOS 的社区属性。昨日,Rocky Linux 8.3 的首个候选发行版发布,下载镜像已放出。
Ghost in the Log4Shell
核弹级漏洞 Log4Shell(CVE-2021-44228)的影响必将是深远的,不仅仅是当下肉眼可见的攻击事件和损失数据,在相当长时间的将来我们都会被这次的阴影所笼罩 – 蠕虫病毒和勒索软件的肆虐,个人敏感数据的大量泄漏。
PHP FFI详解 - 一种全新的PHP扩展方式
随着PHP7.4而来的有一个我认为非常有用的一个扩展:PHP FFI(Foreign Function interface), 引用一段PHP FFI RFC中的一段描述:For PHP, FFI opens a way to write PHP extensions and bindings to C libraries in pure PHP.
是的,FFI提供了高级语言直接的互相调用,而对于PHP来说,FFI让我们可以方便的调用C语言写的各种库。
其实现有大量的PHP扩展是对一些已有的C库的包装,比如常用的mysqli, curl, gettext等,PECL中也有大量的类似扩展。
传统的方式,当我们需要用一些已有的C语言的库的能力的时候,我们需要用C语言写wrapper,把他们包装成扩展,这个过程中就需要大家去学习PHP的扩展怎么写,当然现在也有一些方便的方式,比如Zephir. 但总还是有一些学习成本的,而有了FFI以后,我们就可以直接在PHP脚本中调用C语言写的库中的函数了。
而C语言几十年的历史中,积累了大量的优秀的库,FFI直接让我们可以方便的享受这个庞大的资源了。
All in one:项目级 monorepo 策略最佳实践
在最近的项目开发中,出现了一个令我困扰的状况。我正在开发的项目 A,依赖了已经线上发布的项目 B,但是随着项目 A 的不断开发,又需要不时修改项目 B 的代码(这些修改暂时不必发布线上),如何能够在修改项目 B 代码后及时将改动后在项目 A 中同步? 在项目 A 发布上线后,如何以一种优雅的方式解决项目 A,B 版本升级后的版本同步问题? 经过一番调研,我发现解决这些问题的最佳方案便是本篇要介绍的 monorepo 策略。
CentOS已死,“免费”的RHEL没了!
CentOS 是 Community Enterprise Operating System(社区企业操作系统)的首字母缩写,是 100% 重建的 RHEL(红帽企业 Linux)。尽管 RHEL 需要花钱,但 CentOS 是免费的,社区支持的企业 Linux 发行版。擅长 Linux 且不想支付 RHEL 支持费的开发人员和公司总是选择 CentOS 来节省资金并获得企业级软件。
最IN的云原生架构,阿里云 Serverless 事件总线 EventBridge 重磅发布
Serverless 是云计算下一个10年的主要形态,通过大量端到端的整合和云服务的集成,能极大地提高研发效率。了解阿里云 Serverless 产品家族的最新进展,包括函数计算FC、Serverless应用引擎SAE和 Serverless事件总线EventBridge。
Koin in Android: 更简单的依赖注入
如果还不清楚什么是依赖注入,那么请参考之前写的 Dagger2 in Android(一)通俗基础开头部分。如果你不了解 Dagger 倒也无妨,本文会进行一定的对比,但仅针对接触过 Dagger 的同学,否则大可以忽略。
