RabbitMQ Π΅ Π±ΡΠΎΠΊΠ΅Ρ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Erlang, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ² ΠΊΠ»ΡΡΡΠ΅Ρ Ρ ΠΏΡΠ»Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΠ·Π»ΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π» ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΈ Π·Π°ΠΏΠΈΡ. ΠΠΌΠ°ΠΉΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Kubernetes ΠΊΠ»ΡΡΡΠ΅ΡΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ RabbitMQ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΈ ΠΈ Π±ΡΡ
ΠΌΠ΅ ΠΈΠ·ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΡΠ΅Π΄ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° Π΄Π° ΠΌΠΈΠ³ΡΠΈΡΠ°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ Π΅Π΄ΠΈΠ½ ΠΊΠ»ΡΡΡΠ΅Ρ Π² Π΄ΡΡΠ³ Π±Π΅Π· ΠΏΡΠ΅ΡΡΠΎΠΉ.
ΠΠΌΠ°Ρ ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΠ°Π·ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² ΠΏΠΎΠ½Π΅ Π΄Π²Π° ΡΠ»ΡΡΠ°Ρ:
- ΠΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ RabbitMQ ΠΊΠ»ΡΡΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² Kubernetes, ΠΊΡΠΌ Π½ΠΎΠ² β Π²Π΅ΡΠ΅ βkubernetizedβ (Ρ.Π΅. ΡΠ°Π±ΠΎΡΠ΅Ρ Π² K8s pods) β ΠΊΠ»ΡΡΡΠ΅Ρ.
- ΠΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° RabbitMQ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Kubernetes ΠΎΡ Π΅Π΄Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΠΈΠΌΠ΅Π½Π° Π² Π΄ΡΡΠ³ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ Π²Π΅ΡΠΈΠ³ΠΈΡΠ΅ ΡΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ ΠΎΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π½Π° ΠΈΠΌΠ΅Π½Π°, ΡΠΎΠ³Π°Π²Π° Π·Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡ Π΅Π΄Π½Π° Π²Π΅ΡΠΈΠ³Π° Π² Π΄ΡΡΠ³Π°).
Π Π΅ΡΠ΅ΠΏΡΠ°ΡΠ°, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π² ΡΡΠ°ΡΠΈΡΡΠ°, Π΅ ΡΠΎΠΊΡΡΠΈΡΠ°Π½Π° Π²ΡΡΡ Ρ ΡΠΈΡΡΠ°ΡΠΈΠΈ (Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π° Π΄ΠΎ ΡΡΡ ), Π² ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ° ΡΡΠ°Ρ RabbitMQ ΠΊΠ»ΡΡΡΠ΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡ 3 Π²ΡΠ·Π΅Π»Π°), ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΠΈΠ»ΠΈ Π²Π΅ΡΠ΅ Π² K8s, ΠΈΠ»ΠΈ Π½Π° Π½ΡΠΊΠΎΠΈ ΡΡΠ°ΡΠΈ ΡΡΡΠ²ΡΡΠΈ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ ΠΎΡΡΠ²Π°Π½ΠΎ Π½Π° Kubernetes (Π²Π΅ΡΠ΅ ΡΠ°ΠΌ ΠΈΠ»ΠΈ Π² Π±ΡΠ΄Π΅ΡΠ΅), ΡΠ°Π±ΠΎΡΠΈ Ρ Π½Π΅Π³ΠΎ:
... ΠΈ Π½ΠΈΠ΅ ΡΠΌΠ΅ ΠΈΠ·ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΡΠ΅Π΄ Π·Π°Π΄Π°ΡΠ°ΡΠ° Π΄Π° Π³ΠΎ ΠΌΠΈΠ³ΡΠΈΡΠ°ΠΌΠ΅ ΠΊΡΠΌ Π½ΠΎΠ²Π°ΡΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ Π² Kubernetes.
ΠΡΡΠ²ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΠΏΠΈΡΠ°Π½ ΠΎΠ±ΡΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊΡΠΌ ΡΠ°ΠΌΠ°ΡΠ° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π° Π½Π΅ΠΉΠ½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΠ»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ
ΠΡΡΠ²ΠΈΡΡ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π΅Π½ Π΅ΡΠ°ΠΏ ΠΏΡΠ΅Π΄ΠΈ Π²ΡΡΠΊΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ Π΄Π°Π»ΠΈ ΡΠ΅ΠΆΠΈΠΌΡΡ Π½Π° Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ Π² ΡΡΠ°ΡΠ°ΡΠ° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π½Π° RabbitMQ (ha-mode: all
:
Π‘Π»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΡΠΏΠΊΠ° Π΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π½ΠΎΠ² RabbitMQ ΠΊΠ»ΡΡΡΠ΅Ρ Π² Kubernetes pods (Π² ββΠ½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΡΠΎΡΡ ΡΠ΅ ΠΎΡ 3 Π²ΡΠ·Π΅Π»Π°, Π½ΠΎ ΡΠ΅Ρ
Π½ΠΈΡΡ Π±ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΡΠ°Π·Π»ΠΈΡΠ΅Π½).
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°ΠΌΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ ΠΈ Π½ΠΎΠ²ΠΈΡΠ΅ RabbitMQ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΉΠΊΠΈ Π΅Π΄ΠΈΠ½ ΠΊΠ»ΡΡΡΠ΅Ρ (ΠΎΡ 6 Π²ΡΠ·Π΅Π»Π°):
Π‘ΡΠ°ΡΡΠΈΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΠΈΡ ΠΈ Π½ΠΎΠ²ΠΈΡ RabbitMQ ΠΊΠ»ΡΡΡΠ΅Ρ. Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½ΠΎΠ²ΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ:
Π‘Π»Π΅Π΄ ΡΠ΅Π·ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π΅ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ ΠΎΡ ΠΊΠ»ΡΡΡΠ΅ΡΠ° RabbitMQ ΠΈ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠΈΡΠ° Π·Π° Π·Π°Π²ΡΡΡΠ΅Π½ΠΎ:
ΠΠΈΠ΅ ΡΠΌΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ ΡΠ°Π·ΠΈ ΡΡ
Π΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π·Π° Π½Π°ΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ, Π½ΠΈΠ΅ Π³ΠΎ Π²Π½Π΅Π΄ΡΠΈΡ
ΠΌΠ΅ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ RMQ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Kubernetes ΠΊΠ»ΡΡΡΠ΅ΡΠΈ (Π·Π° Π»ΡΠ±ΠΎΠΏΠΈΡΠ½ΠΈΡΠ΅: Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π°
ΠΠ΅ΠΊΠ° Π΄Π° Π³ΠΎ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°
ΠΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈΡΠ΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΈ:
- Kubernetes ΠΊΠ»ΡΡΡΠ΅Ρ (minikube ΡΡΡΠΎ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ);
- RabbitMQ ΠΊΠ»ΡΡΡΠ΅Ρ (ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·Π³ΡΡΠ½Π°Ρ Π½Π° Π³ΠΎΠ» ΠΌΠ΅ΡΠ°Π» ΠΈ Π½Π°ΠΏΡΠ°Π²Π΅Π½ ΠΊΠ°ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΊΠ»ΡΡΡΠ΅Ρ Π² 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. Π‘Π΅Π³Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ Π½ΠΎΠ²ΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ ΡΡΡ ΡΡΠ°ΡΠΈΡ. ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π΄ΠΎ Π²ΡΡΠΊΠ° ΠΎΡ ΠΏΠΎΠ΄Ρ Π½ΠΎΠ² 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 Π² ΡΡΡΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° ΡΡΡ ΡΡΡΠΈΡΠ΅ Π΅ΡΠΈΠΊΠ΅ΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π½Π΅ ΠΏΠΎΠ΄ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΈ Ingresses, Π° ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° pod ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Ρ ΠΌΠ΅ Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ΅ Π½Π° ΡΡΠΊΠ°, ΠΊΠ°ΡΠΎ Π³ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ ΠΌΠ΅ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π΄Π° Π½Π΅ ΠΏΠ°Π΄Π°Ρ Π²ΡΡΡ Ρ ΠΏΡΠ°Π·Π΅Π½ RMQ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ ΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ° ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Ρ.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ ΡΡΡΠ°ΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΌΠ΅ RabbitMQ Π΄ΠΎ Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Ρ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ - Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅ ΠΊΠ°ΡΠΎ ΡΠ°ΡΠΎΠ²Π½ΠΈΠΊ.
PS
ΠΠ°ΡΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΡΠΌΠ΅ ΡΡΠ°ΡΠΈΠΈ Π·Π° MongoDB (ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΎΡ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ΅Π½ ΡΡΡΠ²ΡΡ ΠΊΡΠΌ Kubernetes) ΠΈ MySQL (ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΡΠΌΠ΅ ΡΠ°Π·ΠΈ Π‘Π£ΠΠ Π² Kubernetes). Π’Π΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΈ ΠΏΡΠ΅Π· ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΠΌΠ΅ΡΠ΅ΡΠΈ.
PPS
ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΡΠΎ Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
- Β«
ΠΠ°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Kubernetes (ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΎΡΡΠ΅Ρ) Β»; - Β«
K8s ΡΡΠ²Π΅ΡΠΈ ΠΈ ΡΡΠΈΠΊΠΎΠ²Π΅: Π£ΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎΡΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ".
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com