失去与Redis服务的连接

问题描述:

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

事有凑巧,我们得到一个超时导致我们的应用程序失败Redis的连接现在的两倍:

Redis的连接失败(连接()失败:连接超时):Redis的:/ /[email protected]:47133

一些技术资料:

  • 的symfony/symfony中(v3.3.9)
  • predis/predis(V1.1.1)
  • CF版本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,它通常工作正常。

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

特别是我不明白可能是什么原因。 我该如何自行检查并确认Redis Service本身运行完全稳定?

当您使用'cf ssh'到您的应用程序时,您可以直接访问该服务。有关如何使用'cf ssh'访问您的服务的完整过程,请参阅Swisscom文档:https://docs.developer.swisscom.com/devguide/deploy-apps/ssh-apps.html

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

+0

不,例如我将ssh加入到我的应用程序中,并使用命令删除缓存(应按照您的要求重试imho),但在重新安装应用程序之前无法完成任何操作。 – LBA

+0

你有管道,推动应用程序和事后绑定服务?服务绑定需要重新安装应用程序以应用新的安全组。 – Lafunamor

+0

在正常分期前发生绑定。这有点奇怪,因为它只是偶尔发生。你的建议每次都会发生,不是吗? – LBA