728x90
반응형
RabbitMQ는 서로 다른 소프트웨어 시스템 간의 통신을 용이하게 하는 오픈 소스 메시지 브로커 소프트웨어입니다. 이는 메시징 미들웨어 제품군의 일부이며 AMQP(Advanced Message Queuing Protocol)를 구현합니다. RabbitMQ를 사용하면 애플리케이션이 분산되고 확장 가능한 방식으로 데이터와 정보를 교환할 수 있습니다.
RabbitMQ의 주요 기능과 개념은 다음과 같습니다.
- 메시지 브로커: RabbitMQ는 분산 시스템의 다양한 구성 요소 사이에서 중개자 또는 메시지 브로커 역할을 합니다. 생산자로부터 메시지를 받아 소비자에게 전달합니다.
- 메시지 큐: 메시지는 수신자가 사용할 때까지 메시지를 보관하는 버퍼 역할을 하는 큐에 배치됩니다. 이는 생산 및 소비 구성 요소를 분리하여 비동기 통신을 허용합니다.
- 교환: 생산자는 교환에 메시지를 보낸 다음 교환 유형에 의해 정의된 라우팅 규칙에 따라 적절한 대기열로 라우팅합니다. 일반적인 교환 유형에는 직접, 주제, 팬아웃 및 헤더가 포함됩니다.
- 바인딩: 교환과 큐 간의 연결은 바인딩을 통해 설정됩니다. 바인딩은 메시지가 교환에서 큐로 라우팅되는 방식을 결정하는 라우팅 키 또는 기준을 정의합니다.
- 게시/구독: RabbitMQ는 게시/구독 패턴을 지원하므로 여러 소비자가 동일한 메시지를 받을 수 있습니다. 이는 바인드된 모든 큐에 메시지를 브로드캐스트하는 팬아웃 교환을 통해 달성됩니다.
- 메시지 승인: RabbitMQ는 메시지 수신을 승인하는 메커니즘을 제공합니다. 이렇게 하면 메시지가 안정적으로 처리되고 메시지 손실이 방지됩니다.
- 내구성: RabbitMQ는 메시지와 대기열의 내구성을 지원합니다. 즉, 브로커를 다시 시작해도 메시지와 대기열이 유지될 수 있습니다. 이는 메시지 무결성과 가용성을 유지하는 데 중요합니다.
- 클러스터링: RabbitMQ는 가용성과 내결함성을 향상시키기 위해 클러스터 구성으로 설정할 수 있습니다. 클러스터링을 사용하면 여러 RabbitMQ 노드가 단일 논리적 브로커로 함께 작동할 수 있습니다.
- 플러그인 및 확장: RabbitMQ는 다양한 플러그인을 통해 확장되어 메시지 변환, 인증 및 권한 부여 메커니즘과 같은 기능을 추가할 수 있습니다.
RabbitMQ는 확장 가능하고 강력한 분산 시스템을 구축하기 위해 다양한 산업에서 널리 사용됩니다. 마이크로서비스 아키텍처 및 엔터프라이즈 통합 솔루션을 포함하여 복잡한 통신 요구 사항이 있는 애플리케이션을 위한 안정적인 메시징 인프라를 제공합니다
# rabbit MQ 설치되이 있는지 확인하기
# apt search rabbitmq-server Sorting... Done Full Text Search... Done rabbitmq-server/jammy-updates,jammy-security,now 3.9.13-1ubuntu0.22.04.2 all [installed] AMQP server written in Erlang root@ubuntu:/# or # apt install rabbitmq-server
# rabbit MQ 설치 및 위치 찾기
# find . -name rabbitmqctl ./usr/sbin/rabbitmqctl ./usr/lib/rabbitmq/bin/rabbitmqctl ./usr/lib/rabbitmq/lib/rabbitmq_server-3.9.13/escript/rabbitmqctl ./usr/lib/rabbitmq/lib/rabbitmq_server-3.9.13/sbin/rabbitmqctl
# rabbit MQ 사용자 추가 및 권한 설정
# rabbit MQ 사용자 추가 및 권한 설정
# rabbit user : openstack / openstack 계정 및 권한을 생성합니다..
# rabbitmqctl add_user openstack openstack Adding user "openstack" ... Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more. # rabbitmqctl set_permissions openstack ".*" ".*" ".*" Setting permissions for user "openstack" in vhost "/" ...
# rabbit MQ 대쉬보스 설정 및 서비스 스타트
# rabbitmq-plugins enable rabbitmq_management Enabling plugins on node rabbit@ubuntu: rabbitmq_management The following plugins have been configured: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch Applying plugin configuration to rabbit@ubuntu... The following plugins have been enabled: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch started 3 plugins. # service rabbitmq-server stop # service rabbitmq-server start # service rabbitmq-server status ● rabbitmq-server.service - RabbitMQ Messaging Server Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2024-01-06 14:30:57 KST; 2min 33s ago Main PID: 18157 (beam.smp) Tasks: 23 (limit: 4537) Memory: 125.0M CGroup: /system.slice/rabbitmq-server.service ├─18157 /usr/lib/erlang/erts-12.2.1/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30> ├─18168 erl_child_setup 65536 ├─18214 inet_gethost 4 └─18215 inet_gethost 4 Jan 06 14:30:53 ubuntu.localdomain systemd[1]: Starting RabbitMQ Messaging Server... Jan 06 14:30:57 ubuntu.localdomain systemd[1]: Started RabbitMQ Messaging Server.
# netstat 명령으로 서비스 확인
# netstat -ntpa |grep LISTEN tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 19045/beam.smp
# rabbit MQ 대쉬보드접속할수 있는 계정 생성
# rabbitmqctl add_user test test Adding user "test" ... Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more. # rabbitmqctl set_user_tags test administrator Setting tags for user "test" to [administrator] ... # rabbitmqctl set_permissions -p / test ".*" ".*" ".*" Setting permissions for user "test" in vhost "/" ...
# rabbit page 접속 (위에서 만든 test/test 계정으로 로그인)
# rabbit MQ 로그인 후 화면
728x90
반응형
LIST
'서버가상화 > openstack' 카테고리의 다른 글
openstack keystone (0) | 2024.01.06 |
---|---|
openstack 캐쉬 (0) | 2024.01.06 |
openstak 오류(Missing value auth-url required for auth plugin password) (0) | 2024.01.06 |
04 openstack 인스턴스 생성 (0) | 2024.01.02 |
openstack mysql 설치정보 (0) | 2024.01.02 |