做的微信服务号的后台,项目是用 PHP ( php-fpm ,有 opcache )+Laravel ,平时发模板消息比较多,但每个模板消息发送后都会给服务号后台接口推发送结果,然而业务不关心这些结果。
想到处理每个消息模板的发送结果都要跑一遍 Laravel 框架就觉得浪费资源,于是做了第一个修改,给 /project/public/index.php 在加载 Laravel 框架前,抓 php://input 判断有没有包含 ""字眼,有就直接返回空字符串,不再加载后面框架。
然而这实际上还是消耗了 php-fpm 资源,最近想到第二个方案:用 Go 写一个接口作为微信服务号后台,Go 收到请求后判断 POST 内容有没有 "" 如果有直接返回空字符给微信,否则把该次请求的内容拿去请求原来 PHP 写的服务号后台接口,把原接口返回请求结果再返回给微信。
可以给服务器配置个 host ,让这个 PHP 请求直接走服务器本地,不走外网。
不知道这样的方案有没有坑?求 v 友意见。
1
CHTuring 136 天前 1
这不是很正常的方案吗,公司内部的的短链、统一消息服务都是分离出来这么做的啊。
|
2
uqf0663 136 天前 1
得先说清楚数据量再定,就像我曾经的博客,沉迷于各种优化手段,但是实际每天 PV 不到 100 ,即使什么手段都不做直接就查库,1C1G 的机器也完全能轻松应对,现在回首那多少个通宵搞优化的自己简直就是沙雕。
|
3
sagaxu 136 天前 1
FPM 实际上性能不弱,每天只有百八十万条消息的话没必要优化边边角角
|
4
clf 136 天前 1
甚至网关都能过滤这种请求吧?
|
5
mrpzx001 136 天前 1
workerman/swoole 都可以轻松处理掉,为啥要上 go 呢
|
6
eslizn 136 天前 1
都用 laravel 了,看看官方的 server 方案 octane
|
7
jonsmith 136 天前 via Android
只是过滤请求的话,感觉 nginx 能做到吧。不过这个信息接收真的并发很大吗
|
8
mengzhuo 136 天前
自己写个 php 处理程序不就好了……没必要上 Go 啊
|
9
p1gd0g 136 天前
我们公司 php 迁移 go 就是这么干的
|
10
guanhui07 135 天前
用 workerman 或 swoole 都可以解决 ,或者你可以单独配置模版消息的 fpm 服务器,区分域名不就好了
|