202004-22 [PHP] 基于redis的分布式锁防止高并发重复请求 HOT 我们先举个某系统验证的列子:(A渠道系统,业务B系统,外部厂商C系统) (1)B业务系统调用A渠道系统,验证传入的手机、身份证、姓名三要素是否一致。 (2)A渠道系统再调用外部厂商C系统。 (3)A渠道系统将结果返回给B业务系统。 继续阅读 >
202004-21 php作为websocket的客户端实时读取推送日志文件 HOT 首先要使用composer来下载一个第三方扩展就可以实现php的websocket客户端,直接在当前目录生成下composer.json文件就可以了。 继续阅读 >
202004-21 PHP项目采用多个Docker镜像的方式在Kubernets平台的部署范例 HOT 组织的容器支持docker-compose部署,组织的容器支持kubernets部署。以php框架thinkphp为示例,演示php项目的kubernets部署。 继续阅读 >
202004-21 PHP 项目实践中的自动加载实现 HOT 使用spl_autoload_register函数注册一个自己定义的自动加载函数。当在代码中new一个不存在的类的时候,上面的函数会被调用,不存在的类名会被作为参数传入该函数中 继续阅读 >
202004-21 Mysql性能优化:为什么要用覆盖索引? HOT 相信读者看过很多MYSQL索引优化的文章,其中有很多优化的方法,比如最佳左前缀,覆盖索引等方法,但是你真正理解为什么要使用最佳左前缀,为什么使用覆盖索引会提升查询的效率吗?本篇文章将从MYSQL内部结构上讲一下为什么覆盖索引能够提升效率。 继续阅读 >
202004-21 mysql触发器 HOT 触发器是一种特殊的存储过程,它在插入、删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。和存储过程一样,很少使用。 继续阅读 >
202004-21 PHP读取HTTP接口如何处理超时 HOT 在Web 开发中,需要有大量的外部资源进行交互,比如说 Mysql、Redis、Memcached、HTTP 接口,这些资源具备这样一些特点:都是网络接口,这些资源的可用性,连接速度、读取速度不可控。 继续阅读 >
202004-21 深入理解PHP内核:变量及数据类型 HOT 现实生活中我们会找一个小箱子来存放物品,一来显得不那么凌乱,二来方便以后找到。计算机也是这个道理,我们需要先在内存中找一块区域,规定用它来存放数据,并起一个好记的名字,方便以后查找。这块区域就是“小箱子”,我们可以把数据放进去了。 继续阅读 >
202004-20 swoole网络编程--Server篇 HOT 服务端,我们平时工作学习中接触比较多的就是 nginx 和 apache 作为 webServer,二者都是通过监听某个端口对外提供服务, swoole 的 server 也不例外,同样需要绑定端口,才可以提供给客户端相关服务; 继续阅读 >
202004-20 你真的知道 Swoole 的进程模型吗? HOT 计算机的核心是 CPU ,它承担了所有的计算任务,就像一座工厂,时刻在运行。 从上面的例子可以知道进程是由多个线程组成的,一个进程至少要有一个线程,实际上,线程是操作系统中最小的执行单元 继续阅读 >
202004-20 Homestead 使用 pecl 安装 swoole 扩展 HOT 背景说明: 公司现有项目是基于laravle5.5开发的,随着业务的增长php及框架的短板也凸显出来,于是准备使用swoole扩展来解决并发问题,以下是记录安装swoole的过程。 环境说明及版本说明: Homestead v10.7.0 swoole v4.4.17 php v7.3 继续阅读 >
202004-18 Swoole协程的执行顺序? HOT 经常会有人通过QQ或微信向我提一些Swoole开发过程中的一些问题,只要时间允许的情况下,我一般都会做解答,下面列出在Swoole社区里的2个有意思的问题 继续阅读 >
202004-18 Swoole协程模式实现Mysql连接池 HOT 连接池定义 永不断开,要求我们的这个程序是一个常驻内存的程序。数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。 继续阅读 >
202004-18 协程与Swoole框架的相关应用 HOT 协程(Coroutine)也叫用户态线程,其通过协作而不是抢占来进行切换。相对于进程或者线程,协程所有的操作都可以在用户态完成,创建和切换的消耗更低。协程是进程的补充,或者是互补关系。 继续阅读 >
202004-18 使用Swoole协程实现 WebRTC 信令服务器 HOT 简单来说,WebRTC 是一个音视频处理+及时通讯的开源库。在实时通信中,音视频的采集和处理是一个很复杂的过程。比如音视频流的编解码、降噪和回声消除等。由Google发起开源,其中包含视频音频采集,编解码,数据传输,音视频展示等功能,我们可以通过技术快速地构建出一个音视频通讯应用。虽然其名为WebRTC,但是实际上它不只是支持Web之间的音视频通讯,还支持Android以及IOS端,此外由于该项目是开源的,我们也可以通过编译C++代码,从而达到全平台的互通。 继续阅读 >
202004-18 使用Swoole协程一键代理PHP-FPM服务 HOT 在Swoole最新发布的v4.5(RC)版本中,我们实现了一项非常有意思的新特性,那就是协程版本的FastCGI客户端。 那么什么是FastCGI呢?首先先来一个官方解释:快速通用网关接口是一种让交互程序与Web服务器通信的协议。 继续阅读 >
202004-17 Go语言 Yaml编码和解码 HOT YAML Ain’t Markup Language,一种非常简洁的非标记语言,可以快速的对Yaml进行编码和解码。 官网地址:https://gopkg.in/yaml.v2 GoDoc:https://godoc.org/gopkg.in/yaml.v2 继续阅读 >
202004-17 RPC系列之基本概念及go语言使用实现 HOT 远程过程调用(Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。 继续阅读 >
202004-17 WebAssembly增加Go语言绑定 HOT 为提供更好的跨平台支持,WebAssembly 正在积极推动其在本地桌面端的进展。与此同时,Wasmtime(WebAssembly runtime)近期为它增加了 Go 绑定功能,这意味着开发者可直接在 Go 应用程序中调用 WebAssembly 模块。 继续阅读 >