V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Chaopi
V2EX  ›  程序员

Go 接收公众号后台回调,再转发给 PHP ,这个构想可行么?

  •  
  •   Chaopi · 136 天前 · 1713 次点击
    这是一个创建于 136 天前的主题,其中的信息可能已经有所发展或是发生改变。

    做的微信服务号的后台,项目是用 PHP ( php-fpm ,有 opcache )+Laravel ,平时发模板消息比较多,但每个模板消息发送后都会给服务号后台接口推发送结果,然而业务不关心这些结果。

    想到处理每个消息模板的发送结果都要跑一遍 Laravel 框架就觉得浪费资源,于是做了第一个修改,给 /project/public/index.php 在加载 Laravel 框架前,抓 php://input 判断有没有包含 ""字眼,有就直接返回空字符串,不再加载后面框架。

    然而这实际上还是消耗了 php-fpm 资源,最近想到第二个方案:用 Go 写一个接口作为微信服务号后台,Go 收到请求后判断 POST 内容有没有 "" 如果有直接返回空字符给微信,否则把该次请求的内容拿去请求原来 PHP 写的服务号后台接口,把原接口返回请求结果再返回给微信。

    可以给服务器配置个 host ,让这个 PHP 请求直接走服务器本地,不走外网。

    不知道这样的方案有没有坑?求 v 友意见。

    第 1 条附言  ·  136 天前
    非常感谢各位:)
    10 条回复
    CHTuring
        1
    CHTuring  
       136 天前   ❤️ 1
    这不是很正常的方案吗,公司内部的的短链、统一消息服务都是分离出来这么做的啊。
    uqf0663
        2
    uqf0663  
       136 天前   ❤️ 1
    得先说清楚数据量再定,就像我曾经的博客,沉迷于各种优化手段,但是实际每天 PV 不到 100 ,即使什么手段都不做直接就查库,1C1G 的机器也完全能轻松应对,现在回首那多少个通宵搞优化的自己简直就是沙雕。
    sagaxu
        3
    sagaxu  
       136 天前   ❤️ 1
    FPM 实际上性能不弱,每天只有百八十万条消息的话没必要优化边边角角
    clf
        4
    clf  
       136 天前   ❤️ 1
    甚至网关都能过滤这种请求吧?
    mrpzx001
        5
    mrpzx001  
       136 天前   ❤️ 1
    workerman/swoole 都可以轻松处理掉,为啥要上 go 呢
    eslizn
        6
    eslizn  
       136 天前   ❤️ 1
    都用 laravel 了,看看官方的 server 方案 octane
    jonsmith
        7
    jonsmith  
       136 天前 via Android
    只是过滤请求的话,感觉 nginx 能做到吧。不过这个信息接收真的并发很大吗
    mengzhuo
        8
    mengzhuo  
       136 天前
    自己写个 php 处理程序不就好了……没必要上 Go 啊
    p1gd0g
        9
    p1gd0g  
       136 天前
    我们公司 php 迁移 go 就是这么干的
    guanhui07
        10
    guanhui07  
       135 天前
    用 workerman 或 swoole 都可以解决 ,或者你可以单独配置模版消息的 fpm 服务器,区分域名不就好了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5783 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 01:43 · PVG 09:43 · LAX 17:43 · JFK 20:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.