网站高并发解决方案(理论知识) 二

  • 仙士可
  • 2020-06-14 21:51:54
  • 架构
距离上篇 网站高并发解决方案(理论知识) 发布,已经过去了2年,在2年内,我懂了很多,不懂的也很多,就现在为止,写一篇最新的高并发解决方案理论知识,以记录自己的成长历程.cdn代理层在高并发下,为了解决带宽问题,全站必须做前后分离操作,所有前端资源都可进行cdn代理,进行缓存静态资源,分散服务器带宽压力.  同时,app端,小程序端等本地资源无需担心这个问题
阅读全文

优雅的输出错误-assert

  • 仙士可
  • 2020-06-03 20:28:33
  • 架构
在正常情况,我们会通过,if,else进行判断一个接口的条件是否满足,不满足则输出错误,例如在IM系统中,申请入群接口,需要以下判断:$param = $this->request()->getRequestParam(); $groupModel = new UserGroupModel(); //获取群信息 $groupInf
阅读全文

easyswoole实现线上更新代码

  • 仙士可
  • 2020-05-25 21:50:55
  • 架构
众所周知,easyswoole作为常驻内存的框架,修改代码并不能直接生效,而是需要重启服务,那么,当你的easyswoole项目上线之后,该如何保证旧请求的同时去更新代码呢?nginx reload和restart首先,我们需要了解到nginx reload和restart的区别.reloadnginx 执行reload命令后,将会重新加载一次配置文件,并且给其他worker进程发送信号,进程收到
阅读全文

nginx实现负载均衡

  • 仙士可
  • 2020-05-24 19:27:34
  • 架构
proxy_pass、upstream与resolverupstreamupstream将创建一个上游服务配置项,用于交给proxy_pass 转发ip.    upstream x.cn {         server 192.168.192.
阅读全文

关于接口幂等性

  • 仙士可
  • 2020-01-09 16:08:59
  • 架构
什么是幂等性HTTP/1.1中对幂等性的定义是:一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外)。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。总结来说:1:假如第一次请求没有对资源进行修改(增加,修改,删除),那么之后的请求同样不会对资源进行修改(get获取资源)2:假如第一次请求对资源有进行修改(增加,修改,删除),那么之后的请求只会跟第一次
阅读全文

easyswoole反向代理实现

Proxy由于 Swoole Server 对 HTTP 协议的支持并不完整,建议仅将 EasySwoole 作为后端服务,并且在前端增加 NGINX 或 APACHE 作为代理,参照下面的例子添加转发规则Nginxserver {     root /data/wwwroot/;     se
阅读全文

并发锁(二):共享锁和独占锁

在上篇的文章中,我们了解了为什么需要锁,以及锁的应用场景。那么,该怎么用锁来进行并发业务逻辑呢?在php中,已经提供了关于锁的函数 flockflock(file,lock,block)参数描述file必需。规定要锁定或释放的已打开的文件。lock必需。规定要使用哪种锁定类型。可能的值:LOCK_SH - 共享锁定(读取的程序)。允许其他进程访问该文件。LOCK_EX - 独占锁定(写入的程序)。
阅读全文

并发锁(一):为什么要加锁

终于下定决心写这系列的文章了,这系列的文章将从零开始,一步步了解并发下,锁的产生,类别,以及锁的实现一:并发数据混乱首先我们看这样一段代码:<?php /**  * Created by PhpStorm.  * User: tioncico  * Date: 19-7-8 &nbs
阅读全文

关于协程的优点以及swoole 协程的用法

在上篇文章中php yield关键字以及协程的实现  我们讲到了协程的原理以及运行步骤.现在我们来继续看下协程的执行顺序.协程的运行是交叉式运行(串行),只要你发起了一次协程切换,则会立马暂停当前协程,去运行下一个协程,直到下次代码调度回协程.协程的优点看到上面的执行顺序,你可能还是不能理解协程的优点,这个其实是一个很简单的概念,举个例子:小明烧开水需要10分钟,刷牙需要3分钟,吃早餐需
阅读全文

Rpc的实现原理以及实现一个简单的Rpc

  • 仙士可
  • 2018-10-21 20:15:48
  • 架构
RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。在一个完整的Rpc协议中,包含了以下对象:1:服务端,提供Rpc服
阅读全文
首页 12 末页 共 15 条记录
  • 本站由白俊遥博客程序搭建
    © 2017-1-17 php20.cn 版权所有 ICP证:闽ICP备17001387号
  • 联系邮箱:1067197739@qq.com