需求背景

  1. 现在业务用mongodb存储聊天记录,每月需要承受1200万行聊天记录,希望更高效更稳定承接mongoclient
  2. swoole本身是协程,但mongodb官方无法被Hook,导致无法使用协程mongo client
  3. 想要方便的做phpunit test
  4. 使用第三方,无需修改三方源码,开箱即用.

调研对象

  1. hyperf/gotask
  2. 采用golang1.14写的,作者利用golang协程作为辅助mongodb client,并通过sideload侧载实现。

踩过的坑

  1. hyperf/gotask 文档不太细,但很多细节并没有抛出来,可能只是作者边缘业务在用,在或者用它的人很少。
  2. ext-mongodb-1.20.0,不再支持fromPHP,提示错误Function MongoDB\BSON\fromPHP() is deprecated,在php内除非降级ext-mongodb,但是实际上生产环境不可能因为这个组件而降级,所以定性“放弃gotask”
  3. gotask本身有3套,核心/go2php/mongoclient, 这里在文档里并没有讲解,需要看golang源码example,才能定位。
  4. mongoclient,实际读取配置,是从system env环境里读取MONGO_URI,(//user:password@ip:port/?adminSource=admin),等等.问题来了,多库多server情况,怎么办? 跨机器设备怎么办? 所以定性“放弃gotask”

再针对GoTask打个总结

  1. hyperf/gotask,github star很少
  2. 使用hyperf/gotask,使用生产的也很少,暴露出来的问题少
  3. 没有可持续性维护
分类: PHP之路 标签: PHPswoolehyperfgolangmongodbgotask

评论

暂无评论数据

暂无评论数据

目录