2017-10-16 109 views
3

我們在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本身運行完全穩定?

回答

0

當您使用'cf ssh'到您的應用程序時,您可以直接訪問該服務。有關如何使用'cf ssh'訪問您的服務的完整過程,請參閱Swisscom文檔:https://docs.developer.swisscom.com/devguide/deploy-apps/ssh-apps.html

您的應用程序應該能夠自行處理連接問題。通常一個簡單的重試會使應用程序崩潰。

+0

不,例如我將ssh加入到我的應用程序中,並使用命令刪除緩存(應按照您的要求重試imho),但在重新安裝應用程序之前無法完成任何操作。 – LBA

+0

你有管道,推動應用程序和事後綁定服務?服務綁定需要重新安裝應用程序以應用新的安全組。 – Lafunamor

+0

在正常分期前發生綁定。這有點奇怪,因爲它只是偶爾發生。你的建議每次都會發生,不是嗎? – LBA

相關問題