moniteur sentinelle mymaster 127.0.0.1 6380 2 |
|
(2) Configuration du service
1. Le fichier de configuration initial du nœud de l'instance Redis
utilise le fichier de configuration par défaut comme modèle.
Après que node01 et node02 ont initialisé le fichier de configuration, la relation maître-esclave entre les nœuds est affichée et la configuration suivante est ajoutée :
replicaof 127.0.0.1 6380
2 Service Sentinel
Le fichier de configuration initial du nœud utilise le fichier de configuration par défaut comme fichier de configuration. modèle.
Après avoir initialisé les fichiers de configuration de node01, node02 et node03, ajoutez la configuration suivante :
sentinel monitor mymaster 127.0.0.1 6381 2
(3) Gestion des services
Lors des tests ou de l'apprentissage, il est recommandé d'utiliser le service de gestion des processus de premier plan pour faciliter la simulation de points uniques d'échec, l'affichage des journaux et l'observation de la commutation maître-esclave.
Il est recommandé d'utiliser le service de gestion du superviseur dans des conditions de production, qui est non seulement facile à gérer mais peut également redémarrer automatiquement le service après une interruption anormale. Trois machines physiques sont utilisées dans des scénarios de haute disponibilité.
1. Instance Redis
/usr/local/redis/bin/redis-server /usr/local/redis/conf/ms/redis80.conf --port 6380 --save '' --daemonize no
/usr/local/redis/bin/redis-server /usr/local/redis/conf/ms/redis81.conf --port 6381 --save '' --daemonize no
/usr/local/redis/bin/redis-server /usr/local/redis/conf/ms/redis82.conf --port 6382 --save '' --daemonize no
2. Service Sentinel
/usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/ms/sentinel280.conf --port 26380 --daemonize no
/usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/ms/sentinel281.conf --port 26381 --daemonize no
/usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/ms/sentinel282.conf --port 26382 --daemonize no
3. Intégration client
L'intégration basée sur SpringBoot est divisée en deux étapes : l'une consiste à terminer l'intégration de base ; avec la production De nouvelles fonctionnalités doivent être ajoutées.
(1) Intégration de base
Le contenu de l'intégration de base est d'utiliser un client Java pour se connecter au service Redis en mode Sentinel à haute disponibilité afin de répondre aux exigences de fonctionnement normal des services de défaillance à nœud unique.
1. Fichier de configuration global
Les informations de configuration ajoutées au fichier de configuration globale sont : le paramètre master
est le nom du service sentinelle, voici la valeur par défaut des nodes
; > Le paramètre est la liste des services sentinelles (et non la liste des services de l'instance Redis) ; le paramètre database
est la base de données. master
参数为哨兵服务名,此处为默认值;nodes
参数为哨兵服务列表(不是Redis实例服务列表);database
参数为数据库。
spring:
redis:
database: 0
sentinel:
nodes: 192.168.181.171:26380,192.168.181.171:26381,192.168.181.171:26382
master: mymaster
2、集成配置
集成进SpringBoot体系,最核心的是创建LettuceConnectionFactory
@Configuration
public class RedisSentinelConfig {
@Autowired
private RedisProperties redisProperties;
@Bean
public RedisConnectionFactory lettuceConnectionFactory() {
RedisProperties.Sentinel sentinel = redisProperties.getSentinel();
HashSet<String> nodes = new HashSet<>(sentinel.getNodes());
String master = sentinel.getMaster();
RedisSentinelConfiguration config = new RedisSentinelConfiguration(master, nodes);
config.setDatabase(redisProperties.getDatabase());
return new LettuceConnectionFactory(config);
}
}
2. La configuration intégrée est intégrée au système SpringBoot. Le cœur est de créer une fabrique de connexions LettuceConnectionFactory
, elle peut être héritée en douceur dans d'autres frameworks sous Spring. système. @Bean
public LettuceClientConfigurationBuilderCustomizer lettuceClientCustomizer() {
// 配置读写分离
return builder -> builder.readFrom(ReadFrom.REPLICA);
}
(2) Séparation en lecture et en écritureL'intégration de base ne réalise que le processus de service Redis à haute disponibilité. Dans l'environnement de production, d'autres configurations doivent encore être ajoutées : modifier le numéro de série de la base de données de connexion personnalisée ; configuration du pool de connexions ; séparation en lecture et en écriture. 🎜🎜Dans le principe de haute disponibilité, la fonctionnalité de séparation de la lecture et de l'écriture est dérivée. La bibliothèque principale termine la demande d'écriture ; la bibliothèque esclave termine la demande de lecture (la bibliothèque esclave n'autorise pas l'écriture). 🎜rrreee