メインコンテンツまでスキップ

레빗엠큐(RabbitMQ) 세팅

1. 개요

  • 이벤트 리시버 사용을 위해서는 RabbitMQ 사용이 필요합니다.
  • ssevtr 서비스가 RabbitMQ 를 통해 작업을 수행합니다.
    • 이벤트 리시버 설치 시에 RabbitMQ를 메시지 브로커로 이용
    • 이벤트 리시버를 통한 이벤트 수신 시에 RabbitMQ를 메시지 브로커로 이용
  • ssevtr 서비스의 이벤트 리시버 사용을 위한 선행 작업에 대해서 설명합니다.

2. 선행 작업

configMap 설정 필요

  SC_RABBITMQ_USE: "true"
SC_RABBITMQ_HOST: "security365-rabbitmq.dev.svc.cluster.local"
SC_RABBITMQ_PORT: "5672"
SC_RABBITMQ_USERNAME: "security365"
SC_RABBITMQ_PASSWORD: "security365"

rabbitMQ의 rabbitmq_delayed_message_exchange 플러그인 설치

rabbitMQ 서비스의 CLI 창에서 설치된 플러그인에서 delay message exchange가 있는지 확인합니다.

rabbitmq-plugins list
Listing plugins with pattern ".*" ...
Configured: E = explicitly enabled; e = implicitly enabled
| Status: * = running on rabbit@321921fffd72
|/
[ ] rabbitmq_amqp1_0 3.13.6
[ ] rabbitmq_auth_backend_cache 3.13.6
[ ] rabbitmq_auth_backend_http 3.13.6
[ ] rabbitmq_auth_backend_ldap 3.13.6
[ ] rabbitmq_auth_backend_oauth2 3.13.6
[ ] rabbitmq_auth_mechanism_ssl 3.13.6
[ ] rabbitmq_consistent_hash_exchange 3.13.6
[ ] rabbitmq_event_exchange 3.13.6
[e*] rabbitmq_federation 3.13.6
[ ] rabbitmq_federation_management 3.13.6
[ ] rabbitmq_jms_topic_exchange 3.13.6
[E*] rabbitmq_management 3.13.6
[e*] rabbitmq_management_agent 3.13.6
[ ] rabbitmq_mqtt 3.13.6
[ ] rabbitmq_peer_discovery_aws 3.13.6
[ ] rabbitmq_peer_discovery_common 3.13.6
[ ] rabbitmq_peer_discovery_consul 3.13.6
[ ] rabbitmq_peer_discovery_etcd 3.13.6
[ ] rabbitmq_peer_discovery_k8s 3.13.6
[E*] rabbitmq_prometheus 3.13.6
[ ] rabbitmq_random_exchange 3.13.6
[ ] rabbitmq_recent_history_exchange 3.13.6
[ ] rabbitmq_sharding 3.13.6

...

rabbitmq_delayed_message_exchange 가 설치되어 있지 않을 경우 설치를 진행해야 합니다. rabbitMq 버전과 호환되는 플러그인을 설치해야 합니다.

curl --insecure -L https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.13.0/rabbitmq_delayed_message_exchange-3.13.0.ez > $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-3.13.0.ez
rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange

rabbitmq를 재시작 합니다

rabbitmqctl stop_app
rabbitmqctl start_app

플러그인이 잘 설치되었는지 리스트를 확인합니다.

rabbitmq-plugins list
Listing plugins with pattern ".*" ...
Configured: E = explicitly enabled; e = implicitly enabled
| Status: * = running on rabbit@321921fffd72
|/
[ ] rabbitmq_amqp1_0 3.13.6
[ ] rabbitmq_auth_backend_cache 3.13.6
[ ] rabbitmq_auth_backend_http 3.13.6
[ ] rabbitmq_auth_backend_ldap 3.13.6
[ ] rabbitmq_auth_backend_oauth2 3.13.6
[ ] rabbitmq_auth_mechanism_ssl 3.13.6
[ ] rabbitmq_consistent_hash_exchange 3.13.6
[E*] rabbitmq_delayed_message_exchange 3.13.0
[ ] rabbitmq_event_exchange 3.13.6
[e*] rabbitmq_federation 3.13.6
[ ] rabbitmq_federation_management 3.13.6
[ ] rabbitmq_jms_topic_exchange 3.13.6
[E*] rabbitmq_management 3.13.6
[e*] rabbitmq_management_agent 3.13.6
[ ] rabbitmq_mqtt 3.13.6
[ ] rabbitmq_peer_discovery_aws 3.13.6
[ ] rabbitmq_peer_discovery_common 3.13.6
[ ] rabbitmq_peer_discovery_consul 3.13.6
[ ] rabbitmq_peer_discovery_etcd 3.13.6
[ ] rabbitmq_peer_discovery_k8s 3.13.6
[E*] rabbitmq_prometheus 3.13.6
[ ] rabbitmq_random_exchange 3.13.6
[ ] rabbitmq_recent_history_exchange 3.13.6
[ ] rabbitmq_sharding 3.13.6

...