容器化redis高可用方案

偶然看到一個GITHUB項目,提供了一套Docker Compose下的redis Sentinel方案。
項目地址https://github.com/AliyunContainerService/redis-cluster,應該是國人建立的。git

具體說明readme中寫的很明白了,yml內容以下:github

master:
  image: redis:3
slave:
  image: redis:3
  command: redis-server --slaveof redis-master 6379
  links:
    - master:redis-master
sentinel:
  build: sentinel
  environment:
    - SENTINEL_DOWN_AFTER=5000
    - SENTINEL_FAILOVER=5000    
  links:
    - master:redis-master
    - slave

master和slave使用redis官方鏡像,slave爲master的從庫。
sentinel則爲基於redis官方鏡像的自定義鏡像,並增長了sentinel配置文件和相關環境變量。redis

運行後,輕鬆得到三個容器,分別爲redis主庫、redis從庫和sentinel。docker

擴展也很是方便,二行命令,輕鬆擴展成三個sentinel,兩個從庫。ui

爽完了以後,才發現仍是有一大一小兩個問題,
一大是應用從sentinel中的到的get-master-addr-by-name是容器中的內網地址和端口。。。容器外沒辦法訪問。只能將應用放在docker compose容器中external_links此容器才行。
一小是sentinel鏡像是基於redis鏡像的,也會監聽6379端口提供redis服務,貌似有點浪費了。code

相關文章
相關標籤/搜索