Overview
La priority los ajustes del set de réplicas afectan tanto al momento como al resultado de elecciones para el primario. Los nodos con mayor prioridad tienen más probabilidades de convocar elecciones y de ganar. Usa esta configuración para asegurarte de que algunos nodos tengan más probabilidades de convertirse en primario y de que otros nunca puedan convertirse en primario.
El valor de la configuración priority del nodo determina su priority en las elecciones. A mayor número, mayor prioridad.
Considerations
Para modificar las prioridades, actualizas el members arreglo en el objeto de configuración de la réplica. El índice del arreglo comienza con 0. No confunda este valor de índice con el valor del campo members[n]._id del miembro del set de réplicas en el arreglo.
El valor de priority puede ser cualquier punto flotante (es decir, decimal) número entre 0 y 1000. El valor por defecto del campo priority es 1.
Para impedir que un nodo busque la elección como primario, se le debe asignar una prioridad de 0. Los miembros ocultos y los miembros atrasados tienen priority establecido en 0.
Los árbitros tienen prioridad 0.
Ajustar la configuración de prioridad durante un periodo de mantenimiento programado. Reconfigurar la prioridad puede forzar al primario actual a degradarse, lo que lleva a una elección. Antes de las elecciones, el principal cierra todas las conexiones de clientes abiertas.
Prioridad y votos
members[n].priority y members[n].votes tienen la siguiente relación:
Los nodos sin derecho a voto (es decir,
voteses0) deben tenerpriorityde 0.Los nodos con
prioritymayor que 0 no pueden tenervotesvotos.
Por lo tanto, aumentar el priority de un miembro sin derecho a voto requiere establecer el votes a 1 y aumenta el número de miembros con derecho a voto en el set de réplicas. Antes de aumentar la prioridad de un nodo sin derecho a voto, ten en cuenta lo siguiente:
MongoDB puede tener sets de réplicas con no más de 7 nodos con derecho a voto. Si el set de réplicas ya tiene 7 nodos con derecho a voto, no puedes modificar la prioridad de ninguno de los nodos restantes del set de réplicas para que sea superior a
0.La reconfiguración de réplicas puede agregar o remover no más de un nodo con derecho a voto a la vez. Para cambiar múltiples nodos sin derecho a voto para que tengan una prioridad mayor que
0, ejecuta una serie de operacionesreplSetReconfigo ders.reconfig()para modificar un nodo a la vez. Consulta Reconfiguration Can Add or remover No More than One Voting nodo at a Time para obtener más información.
Procedimiento
Advertencia
El método de shell
rs.reconfig()puede forzar el traspaso del primario actual, lo que provoca una elección. Cuando el primario renuncia, elmongodcierra todas las conexiones de los clientes. Aunque esto generalmente toma entre 10 y 20 segundos, intente hacer estos cambios durante los periodos de mantenimiento programados.Evitar reconfigurar sets de réplicas que contengan miembros de diferentes versiones de MongoDB, ya que las reglas de validación pueden diferir entre versiones de MongoDB.
Cambiar el valor de prioridad de cada nodo.
Cambia el valor de members[n].priority de cada nodo, según lo configurado en el arreglo members.
cfg.members[0].priority = 0.5 cfg.members[1].priority = 2 cfg.members[2].priority = 2
Esta secuencia de operaciones modifica el valor de cfg para establecer la prioridad de los tres primeros nodos definidos en el arreglo members.
Asigne al set de réplicas la nueva configuración.
Utiliza rs.reconfig() para aplicar la nueva configuración.
rs.reconfig(cfg)
Esta operación actualiza la configuración del set de réplicas utilizando la configuración definida por el valor de cfg.