一次HTTP POST请求,Nginx有没有接收到完整数据, FPM有没有接收到完整数据,通过tcpdump这个软件就可以很轻易完成。
说明:以下LNMP测试环境:
Nginx监听80端口
PHP-FPM监听9022端口
Nginx和FPM通过IP + port的方式通信。
继续阅读
一次HTTP POST请求,Nginx有没有接收到完整数据, FPM有没有接收到完整数据,通过tcpdump这个软件就可以很轻易完成。
说明:以下LNMP测试环境:
Nginx监听80端口
PHP-FPM监听9022端口
Nginx和FPM通过IP + port的方式通信。
继续阅读
一、问题描述
今天在CentOS上切换用户的时候提示This account is currently not available
su elasticsearch This account is currently not available.
开始并没有理解这句话,想当然的认为是用户不存在。
注:用户不存在的提示是user does not exist
su elasticsearch2 su: user elasticsearch2 does not exist
一、容器启动后一直处于restarting状态
0、问题常见
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES af3e886c69ea registry.api.weibo.com/weibo/weibo_tech_pop.filebeat.image:5.6.1 "/usr/share/filebeat 18 minutes ago Restarting (-1) 5 minutes ago voteshield_filebeat_container 79d06f50192c registry.api.weibo.com/weibo/weibo_tech_pop.php71.image:1.8 "/usr/local/sinasrv2 9 months ago Up 3 weeks php_container
一、背景
最近测试python的协程,发现需要3.4以上的版本,大部分Linux系统默认带的版本都是2.x的,故而需要安装新版本。
0、查看当前版本
python -V Python 2.7.5
最近在看协程相关的技术点,包括协程的概念,以及在PHP中的实现,可参考之前的内容《PHP中协程实现学习笔记》。
很早就知道Lua支持协程,之前在业务中使用lua的时候也没有了解过协程,完全处于好奇,简单了解了下,很浅的了解,以下是笔记。
继续阅读
第一部分 什么是协程(Coroutine)
一、概念
0、先来看看Wikipedia Coroutine上的定义(Wikipedia协程中文定义):
Coroutines are computer program components that generalize subroutines for non-preemptive multitasking, by allowing execution to be suspended and resumed。
1、再来看看Wikipedia Routine定义中Coroutine的描述
Coroutine, generalized reentrant computer subroutine having multiple entry points(协程,具有多个入口点的广义可重入计算机子例程
)
继续阅读
之前的一篇文章我们记录了PHP的迭代器(《PHP迭代器学习笔记》),今天进一步了解下PHP的生成器。
一、什么是生成器
先来看看wikipedia关于generator的定义:
In computer science, a generator is a routine that can be used to control the iteration behaviour of a loop. All generators are also iterators.[1] A generator is very similar to a function that returns an array, in that a generator has parameters, can be called, and generates a sequence of values. However, instead of building an array containing all the values and returning them all at once, a generator yields the values one at a time, which requires less memory and allows the caller to get started processing the first few values immediately. In short, a generator looks like a function but behaves like an iterator.
是不是感觉很抽象,我们先看看他在PHP中的具象呈现,然后再回头反复看看上面的定义,你可能就不会那么困惑了。
0、直观概念
生成器在PHP中直观表现是一个自定义的函数,这个函数的功能是遍历对象,往往也叫生成器函数(generator function)。
继续阅读
前一段时间遇到了一个线上慢查询故障,导致应用返回504, 最终通过优化索引彻底解决了问题。后来就想,可不可以设置一个功能自动降级机制,如果查询时间过长,就自动断开,隐藏相关功能模块。做了一下调查,通过设置MySQL查询超时就可以满足这个自动降级机制。
PDO扩展可以设置读超时,MySQLi可以设置读写超时。
在实际开发中遇到了这样一个问题:
团队的成员在一个fetaure branch上做一期开发,目前开发中,还需要一段时间上线。现在需要在fetaure branch功能的基础上做二期开发,二期会晚于一期上线,同时fetaure branch还在提交。
解决思路大概就是创建分支的子分支,网上很多资料都是如何创建,其实比较重要的是如何合并回去,合并会不会有风险。
这也是这篇文章讨论的重点,基于实际的测试。
继续阅读