失去与Redis服务的连接

时间:2017-10-16 12:37:43

标签: symfony redis cloudfoundry swisscomdev

我们在Swisscom提供的Cloudfoundry实例上部署了Symfony应用程序。此外,我们使用Swisscom提供的Redis服务进行缓存。

现在发生了两次我们正在为Redis连接超时,导致我们的应用程序失败:

  

Redis连接失败(connect()失败:连接超时):redis://password@domain.service.consul:47133

一些技术信息:

  • symfony / symfony(v3.3.9)
  • predis / predis(v1.1.1)
  • cf version 6.32.0 + 0191c33d9.2017-09-26

config.yml看起来像是用于缓存:

framework:
    cache:
        system: cache.adapter.apcu
        default_redis_provider: redis://%redis_password%@%redis_host%:%redis_port%
        pools:
            redis_pool:
                adapter: cache.adapter.redis
                public: true
                default_lifetime: 0
                provider: cache.default_redis_provider

并用作此处定义的服务:

tag_aware_cache:
    class: Symfony\Component\Cache\Adapter\TagAwareAdapter
    arguments: [ '@redis_pool' ]

根据我的理解,我们没有使用任何与Redis的持久连接,而且它通常正常工作。

到目前为止,我发现使应用程序恢复稳定运行状态的唯一解决方案是重新部署整个应用程序,这不是一个很好的解决方案。

特别是我不明白可能是根本原因。 我怎么能自己检查一下,Swisscom是否确定Redis服务本身运行完全稳定?

1 个答案:

答案 0 :(得分:0)

使用' cf ssh'您可以直接访问该服务。到你的应用程序。有关如何使用' cf ssh'访问您的服务的完整流程在Swisscoms文档中描述:https://docs.developer.swisscom.com/devguide/deploy-apps/ssh-apps.html

您应用应该能够自行处理连接问题。通常,简单的重试会使应用程序崩溃。