Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

better sentinels support #5

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

silentroach
Copy link

@silentroach silentroach commented Feb 26, 2024

Поддержка нескольких sentinel'ов и использование redis-клиента в режиме, когда он сам будет переключаться между нодами

refs #4

environment:
- REDIS_MASTER_HOST=redis
- REDIS_MASTER_PASSWORD=password
- REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS=1000
- REDIS_SENTINEL_QUORUM=1
Copy link
Author

@silentroach silentroach Feb 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

по умолчанию кворум 2, поправил на 1 чтобы еще один sentinel в композе не поднимать, сразу переключит мастера, когда он станет недоступным

тут правда есть проблема в том, что если мастера убить и им станет слейв, то после рестарта композа будут непонятки и придется убить вольюмы

поэтому я просто дропнул вольюмы, дискас

})

masters, err := sentinel.GetMasterAddrByName(context.Background(), cfg.RedisSentinelName).Result()
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

такой подход наверное норм (с натяжкой) если сервис падает при недоступности редиса, но локально вроде не падает

возможно там у вас в кластере один хостнейм для всех сентинелов и всех нод редиса, и он как-то сам переключается, но тогда смысла в доступном снаружи сентинеле мало

volumes:
- suggestion-redis:/bitnami/redis/data
networks:
- backend
redis-slave:
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

можно с запущенным приложением кильнуть мастер редиса и все само переключится

AppMode string `env:"APP_MODE,default=prod"`

RedisSentinelName string `env:"REDIS_SENTINEL_NAME,default='mymaster'"`
RedisSentinelList string `env:"REDIS_SENTINEL_LIST"`
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{host}:{port},{host2}:{port2},...

@silentroach silentroach changed the title better sentinels support WIP: better sentinels support Feb 26, 2024
@silentroach silentroach marked this pull request as draft February 26, 2024 13:51
@silentroach silentroach changed the title WIP: better sentinels support better sentinels support Feb 26, 2024
@silentroach silentroach marked this pull request as ready for review February 26, 2024 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant