Série RocketMQ: Fonctionnement et maintenance du fonctionnement hors ligne du nœud de cluster

Scénarios d'exploitation et de maintenance

J'ai construit un cluster rocketmq 3m-3s (référence: construction rocketmq 3m-3s ). En supposant que la machine limitée à un ensemble de nœuds maîtres tombe en panne et doit être supprimée, comment effectuer un fonctionnement et une maintenance en douceur?

Par exemple, j'ai construit un cluster de courtiers 3m-3s avec l'architecture suivante:

 

 

Que faire si je souhaite supprimer le nœud Broker-A du cluster?

Tout d'abord, il y a trois points à clarifier:

Le premier point: tout d'abord, vous devez changer le courtier-a dans un état où les nouveaux messages ne peuvent pas être reçus (c'est-à-dire que les nouveaux messages tombent sur le courtier-b et le courtier-c), mais cela ne peut pas affecter le placement des messages en cours de traitement.

Le deuxième point: Après avoir défini la première étape, courtier en l'état sa machine esclave; la première étape ne peut pas affecter les messages qui ont été placés avant la consommation de l'esclave.

Le troisième point: après la suppression du courtier-a, l'échelle du cluster devient plus petite, s'il peut supporter la production et la consommation actuelles de TPS.

La troisième étape peut être évaluée. En général, le niveau d'eau maximal du cluster qui peut résister au TPS est de 2/3. Par exemple, le TPS maximal actuel du cluster est de 10 000 et le TPS réel de l'environnement de production est recommandé de ne pas dépasser 7 000. S'il dépasse 7 000, le courtier doit être développé. Clustered.

en fonctionnement

Tout d'abord, nous comprenons l'attribut perm de topic, qui peut être visualisé dans la console:

Perm fait référence aux attributs de lecture et d'écriture du sujet:

6: Lire et écrire

4: lecture seule

2: écrire uniquement

Après avoir compris perm, nous pouvons utiliser perm pour écrire des articles.

étape 1

Afin d'atteindre le premier point, tant que tous les sujets sur courtier-a sont en lecture seule, le message ne continuera pas à être écrit sur courtier-a, donc pour tous les sujets qui ont été créés et associés à courtier-a , La perm de ces sujets doit être définie sur 4.

le chemin:

1. Vous pouvez cliquer sur la sous-page TOPIC de la console. Dans la rubrique, cliquez sur la "configuration de rubrique" de chaque élément et modifiez la perm de broker-a à 4, comme indiqué ci-dessous:

  

2. Vous pouvez également modifier les autorisations de la rubrique correspondante via mqadmin updateTopicPerm sur la ligne de commande, comme indiqué ci-dessous:

Étape 2

1. Afficher le trafic d'écriture du courtier

查看broker-a的master节点的InTPS,直到InTPS为0,说明该topic已经不再接受新的消息。

2. 查看broker-a-s的读出流量

观察broker-a-s上的OutTPS(消费),OutTPS也为0之后,说明消息理论上已经全部被消费完毕。

步骤3

查看broker-a上的consumer是否全部消费完毕,且没有diff(有diff说明有的落盘的消息没有被消费到,一般是客户端consumer有bug)

步骤4

确认上述后,为了保险起见,建议将broker-a(master和slave机器)分别保留3天,等三天后通过mqshutdown命令停止broker-a和broker-a-s

至此,摘除故障机器的操作就OK了

博主:测试生财

座右铭:专注测试与自动化,致力提高研发效能;通过测试精进完成原始积累,通过读书理财奔向财务自由。

csdn:https://blog.csdn.net/ccgshigao

博客园:https://www.cnblogs.com/qa-freeroad/

51cto:https://blog.51cto.com/14900374


Je suppose que tu aimes

Origine blog.51cto.com/14900374/2540010
conseillé
Classement