我想将基于Laravel的电子商务解决方案与新功能集成在一起。此时主要脚本需要大约2.7秒才能运行。整个网站加载时间超过6秒,我们刚开始监控它。我们的目标是让脚本和4s一起获得低于2s。如何在不降低响应速度的情况下调用microservice?
微服务和功能通过gRPC公开。
有一个基于TLS的客户端 - 服务器身份验证(电子商务实例和我的服务可以证明他们是谁)。这吃了几毫秒。
当测试Go-client和Go-server时,有20个连接池,每个请求的吞吐量低于35ms。 在PHP中,每个请求需要200ms以上。
是否有可能:
- 缓存请求之间服务的连接?
- 异步调用RPC方法?
在其他的解决方案,我考虑:
- 设置本地GRPC代理将只接受本地主机的GET请求由PHP脚本制作,让他们安全GRPC调用。
- 在PHP应用程序前设置代理以调用微服务。
- 使用JavaScript直接从网站调用服务(给用户浏览器带来负担,需要维护JavaScript)。
有什么建议吗?
是考虑,一种方法是让用户_feel_它加载而不实际加快什么更快。只需拆分加载。快速加载_something_,然后用内容填充它。 –
该网站臃肿与第三方增强解决方案。让它工作得很快的很长一段路。理论上有很多部件加载速度很快,实际上我作为用户感觉速度很慢。 –
您可以将Varnish设置为商店和其他API之间的缓存和故障转移层。作为额外的好处,您可以使用Varnish来平衡API请求并充当流量管理器/路由器。 一般(和一点题外话,不好意思): - 对于一个基于PHP的店,有您几乎可以在PHP层面做除外(显然)使用opcache,去除不必要的.so模块,岩屑录井到最低限度并使用最新版本。 - 以我对Magento的经验为例,通过打孔+,doh,微调MySQL,FPC实现了轻松的性能优势。 – doharlem