php-fpm用pkill -9引发的问题

2018年10月31日 没有评论

现象:
QA对线上服务进行验收后,没人任何人操作的情况下,php-fpm自动终止了。
结果是线上服务在QA验收通过后一段时间挂了。

经过推演和日志佐证,暂时得出的结论是:
运维人员使用pkill -9 终止php-fpm后,忘记启动了。

推演出来的原因:
pkill -9会先枚举php-fpm所有的进程,然后逐个kill -9操作。
枚举完成后,kill掉php-fpm的master之前,有可能master会产生新的worker,这个间隙的worker成为漏网之鱼,当worker到达设定的响应次数后,自动退出。

更多内容…

分类: 工作 标签: , ,

某银行https调用超时率高

2017年11月2日 没有评论

对接某东南亚银行时,发现其中一个银行的超时率比较高。

联系银行后,得到的反馈是那边处理的很快,接到请求时就很晚了。
抓包和日志做综合对比,发现是产生日志十秒后,才开始有TCP的SYN握手包,后面的ACK和HTTPS的handshake都是正常的。

怀疑两种可能:
1、域名解析慢。
2、代码有问题,处理有队列或有等待连接池资源等问题。

考虑到这个通道的量比较少,队列和等待连接池的概率比较低,预期大概率是解析问题。

解决方案:在服务所在服务器绑host,一直观察到第二天,确认问题暂告解决。

遗留问题:如果银行端域名解析变更,会导致服务不可用。目前仅有失败率监控,监控到问题后再处理,会有个时间差。
后续解决方案:开发域名解析缓存机制组件,周期刷新解析结果。待调研实现后补充。

分类: 工作 标签: , ,

通用支付二维码方案

2017年10月31日 没有评论

目前已经有自有的支付二维码,新接入支付宝的二维码。
计划在二维码上做融合:同时支持自有的App及支付宝扫码。

支付宝的二维码内容,是一个支付宝自己的https的链接,扫描后会拉起收银台支付。
自建二维码也有类似的一套流程。

方案A:全线使用支付宝的二维码(订单码),自有App兼容。
因为会受制于支付宝,否决。

方案B:生成中间二维码,根据UA识别支付宝,自动生成支付宝的二维码中的订单URL并302跳转。实测Android和iOS通过。
后续微信之类的支付接入,也会采用类似方案。

分类: 工作 标签: , ,

接入网关错误信息国际化问题

2017年9月25日 没有评论

几年前的方案,上周沟通时,忘了,备忘一下。

两种方案:
一、实时方案
按标准的HTTP协议处理,即http的Accept-Language头信息来自动匹配相关的配置文件。

二、非实时方案(周期性版本检查)
提供独立的错误码和错误信息对应的查询接口,返回指定语言的提示信息。

这两种方案都需要指定错误码,并扩展错误信息。

Spring的@Configuration中@Bean注解无效问题

2017年9月1日 没有评论

在Spring boot(版本1.3.1)项目中,先有一个Configuration的Class,再建另一个,发现新建的这个无法生效。老的没问题。

很偶然的改了一下方法名,就可以了。

然后证实多个Configuration下,如果存在同名的方法,就会不认。返回值不同也不行。

留下点文字,记录这个坑。

关于领导力

2017年8月1日 没有评论

你要造一艘船,先不要雇人去收集木头,而是要先去激发人们对海洋的渴望。
这是船长的最核心的领导力。

深以为然。

分类: 工作 标签: