0

用PHP编写支持高并发的网站,需要做什么处理?

PHP语言开发高并发的网站,需要加缓存,复杂逻辑走消息队列异步处理,mysql查询必须走索引,还搞不定就加机器分流,mysql配置升高并且一主多从,使用codis集群,增加消息队列的消费者,如果还搞不定就随机拒绝请求,当然这是最后的退路。缓存缓存是避免业务查询过多的请求mysql,导致业务不可用,根据场景来判断是否需要使用codis集群,如果并发量没有达到某个级别,16G的redis也可以,但是要避免redis在高并发下容易发生的缓存穿透,尽量做成高可用,并保证缓存实现的命中率。消息队列这也是高并发情境下的杀手锏,削峰填谷,将耗时的业务逻辑直接以队列的形式异步慢慢处理,防止请求过度积压,导致的...

阅读全文>>

0

教你利用 PHP 实现微服务

随着互联网浏览越来越大. 传统的 MVC 单一架构随着应用规模的不断扩大,应用模块不断增加,整个应用也显得越来越臃肿,维护起来也更加困难.我们必须采取措施,按应用拆分,就是把原来的应用按照业务特点拆分成多个应用。比如一个大型电商系统可能包含用户系统、商品系统、订单系统、评价系统等等,我们可以把他们独立出来形成一个个单独的应用。多应用架构的特点是应用之间各自独立 ,不相互调用。多应用虽然解决了应用臃肿问题,但应用之间相互独立,有些共同的业务或代码无法复用。单一应用的解决方案对于一个大型的互联网系统,一般会包含多个应用,而且应用之间往往还存在共同的业务,并且应用之间还存在调用关系。除此之外 ,对于...

阅读全文>>

0

用PHP如何实现页面静态化

为什么要静态化页面?当用户访问一个不经常更新的Web页面,PHP接到指示对php脚本文件进行解析,从数据库查询到该页面所需要的数据,然后对页面模板进行渲染,最后将一个成品页面展示给用户。单次请求对于服务器来说非常简单,处理起来非常快,但是如果同时有成千上万各用户请求该页面呢?这无疑是对资源的一种浪费,这就是我们要做静态的目的。静态化分为纯静态与伪静态,纯静态又分为局部纯静态和全部纯静态。伪静态 伪静态顾名思义,它并不是真的静态页面而是伪装的。例如一个以php作为后端语言的web站点,正常情况下他的url应当是类似于http://www.example.com/index.php。当我们做了伪静...

阅读全文>>

0

PHP8 到底有多快,新特性解读

PHP-8将于今年年底发布,其最令人期待的功能之一就是JIT编译。让我们通过本文来看看这项功能对PHP脚本的速度有怎样的影响?以下为译文:今年年底,PHP-8即将发布。虽然这个主版本有很多新功能,例如联合类型、静态返回和弱映射等,但最令人期待的改进还是JIT编译器。从理论上讲,JIT处理PHP脚本编译的方式能够提高应用程序的速度。但让我们来看看这种方法能否达到我们的期望。请注意,在本文中使用的PHP-8不是最终版本。首先,我们来编写一段运行的代码。我选择了冒泡排序,因为这是最差的排序算法,只有这种测试的时候我才能用这个排序算法。<?phpfunction bubble_sort...

阅读全文>>

0

PHP 8 发布 Alpha 版本,期待吗?

按照发布计划,PHP 8 将于今年 11 月 26 日发布,而原定于 6 月 18 日发布的第一个 Alpha 版本跳票到了今天发布。php8 是一个新的主要版本,它引入了一些重大变更,以及许多新特性和性能改进,下边简单介绍一些亮点:下载地址:https://www.php.net/archive/2020.phpJIT,Just-In-Time,即时编译最重大的特性非 JIT 莫属。该特性的研发历时多年,熬过了 PHP 5 与 7 大版本系列(PHP 6 项目流产),直到去年 3 月份才最终通过投票确认将进入 PHP 8。JIT 是一种编译器策略,它将代码表述为一种中间状态,在运行时将其转换...

阅读全文>>

0

PHP 8 到底有多快,新特性解读

PHP-8将于今年年底发布,其最令人期待的功能之一就是JIT编译。让我们通过本文来看看这项功能对PHP脚本的速度有怎样的影响?以下为译文:今年年底,PHP-8即将发布。虽然这个主版本有很多新功能,例如联合类型、静态返回和弱映射等,但最令人期待的改进还是JIT编译器。从理论上讲,JIT处理PHP脚本编译的方式能够提高应用程序的速度。但让我们来看看这种方法能否达到我们的期望。请注意,在本文中使用的PHP-8不是最终版本。首先,我们来编写一段运行的代码。我选择了冒泡排序,因为这是最差的排序算法,只有这种测试的时候我才能用这个排序算法。<?phpfunction bubble_sort...

阅读全文>>

0

php+phpstorm+xdebug+PuTTY远程调试方式

1、环境说明 本地开发机:windows开发浏览器:chrome远程服务器:ubuntu、nginx, 服务器无法直接通过ip访问本地开发机,所以使用了PuTTY做映射,否则无需映射即可直接配置使用注意:php的路由需要能够路由到真实的php文件,否则无法远程调试2、安装必要程序(服务器)1) 安装xdebug, apt-get install php5-xdebug配置:在php.ini里增加 (重启php服务)[xdebug]zend_extension=/usr/lib/php5/20121212/xdebug.soxdebug.remote_enable=1xdebug.remote_...

阅读全文>>

0

PHP无状态登陆:JWT

现在的软件开发项目大都使用前后端分离,项目后端接口遵循RESTful规范:(1)每一个URI代表一种资源;(2)客户端和服务器之间,传递这种资源的某种表现层;(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。这个时候,前后端不在同一个域名下,就存在跨域问题,使用session来记录登陆用户信息,就显得有些力不从心了,而且session需要存储在服务端,这样增加了服务器的压力,在集群环境下,session还不能进行共享。Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被...

阅读全文>>

0

PHP使用反向Ajax技术实现在线客服系统

反向Ajax技术,又称为服务器推技术,server push等。一般用于“在线客服”、“消息推送”、“即时通信”等功能中,比如新浪微博的私信功能,就是客户端不断的请求服务器并创建连接,去查看服务器有没有返回的信息,建立连接比较浪费服务器资源,下面我将根据客户端创建连接的不同性来介绍一下实现反向Ajax的三种思路。三种思路:1、间隔固定时间创建连接这种方式就是按照固定时间不断的去请求服务器,当创建第一个连接时,不管是否有数据返回,此次连接都会失效,然后隔一段时间发出第二个请求,不断重复此动作,此法最浪费资源。2、长连接方式这种方式始终只创建一个连接,而这个连接不断开,被称为长时连接,以此不断获取...

阅读全文>>

0

微信公众号或小程序登录失败:invalid appsecret

今天打开公众号,出现以下错误: 登录失败:invalid appsecret, view more at http://t.cn/RAEkdVq, hints: [ req_id: 5EHBS.wgE-jSQs9a ] 应该是secret出现问题了,secret错误,换一下secret就可以了。

阅读全文>>