RabbitMQ β Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Erlang Π±ΡΠΎΠΊΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ
Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ·Π»ΠΎΠ², Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ·Π΅Π» ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ. ΠΠΌΠ΅Ρ Π² production-ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² Kubernetes, ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΉ RabbitMQ ΠΈ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ Π±Π΅Π· ΠΏΡΠΎΡΡΠΎΡ.
ΠΠ°Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π±ΡΠ»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π½Π°ΠΌ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π² Π΄Π²ΡΡ ΡΠ»ΡΡΠ°ΡΡ :
- ΠΠ΅ΡΠ΅Π½ΠΎΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ΅ΡΠ° RabbitMQ, Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎΡΡ Π½Π΅ Π² Kubernetes, Π² Π½ΠΎΠ²ΡΠΉ β ΡΠΆΠ΅ Β«ΠΊΡΠ±Π΅ΡΠ½Π΅ΡΠ΅Π·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉΒ» (Ρ.Π΅. ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΡΡΠΈΠΉ Π² podβΠ°Ρ K8s) β ΠΊΠ»Π°ΡΡΠ΅Ρ.
- ΠΠΈΠ³ΡΠ°ΡΠΈΡ RabbitMQ Π² ΡΠ°ΠΌΠΊΠ°Ρ Kubernetes ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ namespace Π² Π΄ΡΡΠ³ΠΎΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠ½ΡΡΡΡ ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°ΠΌΠΈ ΠΈΠΌΡΠ½, ΡΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ).
ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ Π² ΡΡΠ°ΡΡΠ΅ ΡΠ΅ΡΠ΅ΠΏΡ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ Π½Π° ΡΠΈΡΡΠ°ΡΠΈΠΈ (Π½ΠΎ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΠΈΠΌΠΈ), Π² ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΡΡΠ°ΡΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ RabbitMQ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· 3 ΡΠ·Π»ΠΎΠ²), Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΉΡΡ Π»ΠΈΠ±ΠΎ ΡΠΆΠ΅ Π² K8s, Π»ΠΈΠ±ΠΎ Π½Π° ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΡΡΠ°ΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ . Π‘ Π½ΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π·ΠΌΠ΅ΡΡΠ½Π½ΠΎΠ΅ Π² Kubernetes (ΡΠΆΠ΅ ΡΠ°ΠΌ ΠΈΠ»ΠΈ Π² ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π΅):
β¦ ΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΠΌΠΈ ΡΡΠΎΠΈΡ Π·Π°Π΄Π°ΡΠ° Π΅Π³ΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π² Π½ΠΎΠ²ΡΠΉ production Π² Kubernetes.
Π‘Π½Π°ΡΠ°Π»Π° Π±ΡΠ΄Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ ΠΎΠ±ΡΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°ΠΌΠΎΠΉ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, Π° ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ β ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΠΏΠΎ Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ
ΠΠ΅ΡΠ²ΡΠΉ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ, ΡΡΠ°ΠΏ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ β ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, ΡΡΠΎ Π² ΡΡΠ°ΡΠΎΠΉ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ RabbitMQ Π²ΠΊΠ»ΡΡΡΠ½ ΡΠ΅ΠΆΠΈΠΌ Π²ΡΡΠΎΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ (ha-mode: all
:
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ β ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ RabbitMQ Π² podβΠ°Ρ
Kubernetes (Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· 3 ΡΠ·Π»ΠΎΠ², Π½ΠΎ ΠΈΡ
ΡΠΈΡΠ»ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ).
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ ΡΡΠ°ΡΡΠΉ ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅ΡΡ RabbitMQ, ΠΏΠΎΠ»ΡΡΠ°Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ (ΠΈΠ· 6 ΡΠ·Π»ΠΎΠ²):
ΠΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΡΠΌ ΠΈ Π½ΠΎΠ²ΡΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°ΠΌΠΈ RabbitMQ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠΈ ΡΠ·Π»Π°ΠΌΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°:
ΠΠΎΡΠ»Π΅ ΡΡΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ΅ΡΠ° RabbitMQ ΡΡΠ°ΡΡΠ΅ ΡΠ·Π»Ρ, ΠΈ ΠΏΠ΅ΡΠ΅Π΅Π·Π΄ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ Π·Π°Π²Π΅ΡΡΡΠ½Π½ΡΠΌ:
ΠΡΡ ΡΡ
Π΅ΠΌΡ ΠΌΡ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈ Ρ Π½Π°Ρ Π² production. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π΅Ρ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡΠ΅ΠΉ ΡΠΈΠΏΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ RMQ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°Ρ
ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² Kubernetes (Π΄Π»Ρ ΡΠ΅Ρ
, ΠΊΠΎΠΌΡ Π»ΡΠ±ΠΎΠΏΡΡΠ½ΠΎ: ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΏΡΠΎ
ΠΡΠΎΠ±ΡΠ΅ΠΌ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡ:
- ΠΠ»Π°ΡΡΠ΅Ρ Kubernetes (ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΠΈ minikube);
- ΠΠ»Π°ΡΡΠ΅Ρ RabbitMQ (ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡ Π½Π° bare metal, ΠΈ ΡΠ΄Π΅Π»Π°Π½ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ Π² Kubernetes ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Helm-ΡΠ°ΡΡΠ°).
ΠΠ»Ρ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΠ» RMQ Π² Kubernetes ΠΈ Π½Π°Π·Π²Π°Π» Π΅Π³ΠΎ rmq-old
.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΡΡΠ΅Π½Π΄Π°
1. Π‘ΠΊΠ°ΡΠ°Π΅ΠΌ Helm-ΡΠ°ΡΡ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ:
helm fetch --untar stable/rabbitmq-ha
ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π·Π°Π΄Π°ΡΠΌ ΠΏΠ°ΡΠΎΠ»Ρ, ErlangCookie
ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ ha-all
, ΡΡΠΎΠ±Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠΈ ΡΠ·Π»Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° RMQ:
rabbitmqPassword: guest
rabbitmqErlangCookie: mae9joopaol7aiVu3eechei2waiGa2we
definitions:
policies: |-
{
"name": "ha-all",
"pattern": ".*",
"vhost": "/",
"definition": {
"ha-mode": "all",
"ha-sync-mode": "automatic",
"ha-sync-batch-size": 81920
}
}
2. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°ΡΡ:
helm install . --name rmq-old --namespace rmq-old
3. ΠΠ°Ρ ΠΎΠ΄ΠΈΠΌ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΡ RabbitMQ, ΡΠΎΠ·Π΄Π°ΡΠΌ Π½ΠΎΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠ½ΠΈ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ»Π΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈΡΡ ΠΈ ΠΌΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΈ:
Π’Π΅ΡΡΠΎΠ²ΡΠΉ ΡΡΠ΅Π½Π΄ Π³ΠΎΡΠΎΠ²: Ρ Π½Π°Ρ Π΅ΡΡΡ Β«ΡΡΠ°ΡΡΠΉΒ» RabbitMQ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ.
ΠΠΈΠ³ΡΠ°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° RabbitMQ
1. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π·Π²Π΅ΡΠ½ΡΠΌ Π½ΠΎΠ²ΡΠΉ RabbitMQ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΡΠ½ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ ErlangCookie
ΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄Π΅Π»Π°Π΅ΠΌ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ RMQ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ:
helm install . --name rmq-new --namespace rmq-new
2. Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠΎ ΡΡΠ°ΡΡΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π·Π°Ρ ΠΎΠ΄ΠΈΠΌ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· podβΠΎΠ² Π½ΠΎΠ²ΠΎΠ³ΠΎ RabbitMQ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
export OLD_RMQ=rabbit@rmq-old-rabbitmq-ha-0.rmq-old-rabbitmq-ha-discovery.rmq-old.svc.cluster.local &&
rabbitmqctl stop_app &&
rabbitmqctl join_cluster $OLD_RMQ &&
rabbitmqctl start_app
Π ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ OLD_RMQ
Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π°Π΄ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ·Π»ΠΎΠ² ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° RMQ.
ΠΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ·Π΅Π» Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° RMQ, ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ Π΅Π³ΠΎ ΠΊ ΡΡΠ°ΡΠΎΠΌΡ ΠΊΠ»Π°ΡΡΠ΅ΡΡ ΠΈ ΡΠ½ΠΎΠ²Π° Π·Π°ΠΏΡΡΡΡΡ.
3. ΠΠ»Π°ΡΡΠ΅Ρ RMQ ΠΈΠ· 6 ΡΠ·Π»ΠΎΠ² Π³ΠΎΡΠΎΠ²:
ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ, ΠΏΠΎΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠΈ ΡΠ·Π»Π°ΠΌΠΈ. ΠΠ΅ΡΡΡΠ΄Π½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΌΠΎΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΆΠ΅Π»Π΅Π·Π°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π·Π²ΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ, ΠΈ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. Π ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΈΡ
Π²ΡΠ΅Π³ΠΎ 10, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ, Π½ΠΎ ΠΏΡΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π΄Π»ΠΈΡΡΡΡ ΡΠ°ΡΠ°ΠΌΠΈ.
ΠΡΠ°ΠΊ, ΡΡΠ°ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ:
ΠΠ΄Π΅ΡΡ +5
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΆΠ΅ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π΅ΡΡ Π½Π° 5 ΡΠ·Π»Π°Ρ
(ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½ Π² ΠΏΠΎΠ»Π΅ Node
). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ.
4. ΠΡΡΠ°Π΅ΡΡΡ Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π°Π΄ΡΠ΅Ρ RMQ Π½Π° Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ (ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π·Π΄Π΅ΡΡ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ° ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ), ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΡΠ°ΡΡΡΡ ΡΠΎ ΡΡΠ°ΡΡΠΌ.
ΠΠ»Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (Ρ.Π΅. ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ) Π·Π°Ρ ΠΎΠ΄ΠΈΠΌ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ·Π΅Π» ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
rabbitmqctl stop_app
rabbitmqctl reset
ΠΠ»Π°ΡΡΠ΅Ρ Β«Π·Π°Π±ΡΠ»Β» ΠΎ ΡΡΠ°ΡΡΡ ΡΠ·Π»Π°Ρ : ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΡΡΡ ΡΡΠ°ΡΡΠΉ RMQ, Π½Π° ΡΡΠΌ ΠΏΠ΅ΡΠ΅Π΅Π·Π΄ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ RMQ Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ, ΡΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ β ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΅Π·Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅.
ΠΡΠ²ΠΎΠ΄Ρ
ΠΠΏΠΈΡΠ°Π½Π½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ RabbitMQ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΅Ρ Π°ΡΡ Π² Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ.
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊ RMQ ΠΎΠ±ΡΠ°ΡΠ°Π»ΠΈΡΡ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΌΠ΅ΡΡ, Π° Ρ Π½Π°Ρ Π½Π΅ Π±ΡΠ»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²Π΅Π·Π΄Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π°Π΄ΡΠ΅Ρ RMQ Π½Π° Π½ΠΎΠ²ΡΠΉ. Π’ΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ RMQ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΡΠ½ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ Π»Π΅ΠΉΠ±Π»Π°ΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΏΠΎΠΏΠ°Π΄Π°Π» ΠΏΠΎΠ΄ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ IngressβΡ, Π° ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ podβΠ° ΡΡΠΊΠ°ΠΌΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π»ΠΈ Π»Π΅ΠΉΠ±Π»Π°ΠΌΠΈ, ΡΠ΄Π°Π»ΡΡ ΠΈΡ Π² Π½Π°ΡΠ°Π»Π΅, ΡΡΠΎΠ±Ρ Π½Π° ΠΏΡΡΡΠΎΠΉ RMQ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ Π·Π°ΠΏΡΠΎΡΡ, ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
Π’Π°ΠΊΡΡ ΠΆΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ RabbitMQ Π½Π° Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ β Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΊΠ°ΠΊ ΡΠ°ΡΡ.
P.S.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° ΠΌΡ Π³ΠΎΡΠΎΠ²ΠΈΠΌ ΡΡΠ°ΡΡΠΈ ΠΏΡΠΎ MongoDB (ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Ρ ΠΆΠ΅Π»Π΅Π·Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² Kubernetes) ΠΈ MySQL (ΠΊΠ°ΠΊ ΠΌΡ Π³ΠΎΡΠΎΠ²ΠΈΠΌ ΡΡΡ Π‘Π£ΠΠ Π²Π½ΡΡΡΠΈ Kubernetes). ΠΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠ΅ ΠΌΠ΅ΡΡΡΡ.
P.P.S.
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅:
- Β«
ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Kubernetes (ΠΎΠ±Π·ΠΎΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π°) Β»; - Β«
K8s tips & tricks: Π£ΡΠΊΠΎΡΡΠ΅ΠΌ bootstrap Π±ΠΎΠ»ΡΡΠΈΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Β».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com