rabbitmq기초

Exchange의 세 가지 유형
Direct Exchange – binding key의 이름이 queue name의 이름과 동일하게 일치합니다.Ppublish key가 orange일 때, exchange는 그것을 Q1에 넣습니다.블랙이나 그린이라면 Q2에 도착할 것이다.나머지 메세지는 다 버려져요.
Fanout Exchange - bindingkey 라우팅 메시지를 통과하지 않고 exchange는 모든 메시지를 알고 있는queue에 저장합니다.간단하게queue를 exchange에 연결하기만 하면 됩니다.exchange에 보내는 메시지는 이 exchange와 연결된 모든queue에 전송됩니다.Fanout 유형의 exchange가 가장 빠르게 메시지를 전달합니다.
Topic Exchange - bingdingkey를 모드와 일치시킵니다.이 때queue는 하나의 모드로 귀속되어야 합니다.'#'기호는 하나 이상의 단어와 일치하고,'*'기호는 하나 이상의 단어와 일치하지 않습니다.
Round-robin dispatching 순환 배달 메커니즘은 기본적으로 RabbitMQ가 매 메시지를 순서대로 배달합니다.각각ack을 받으면 이 메시지를 삭제하고 다음 메시지를 다음 Consumer로 나누어 줍니다.이런 분배 방식을 라운드로빈이라고 한다.RabbitMQ의 배포 메커니즘은 확장에 적합하고 병렬 프로그램을 위해 설계되었습니다.현재load가 가중되면 더 많은 Consumer를 만들어서 작업 처리를 하면 됩니다.당연하지, 부하가 더 늘어나면 어떡하지?나는 이런 상황을 만난 적이 없다. 그러면 여러 개의 가상 호스트를 만들고 서로 다른 통신 종류를 세분화할 수 있다.
메시지 acknowledgment 메시지 확인 메커니즘(http://blog.csdn.net/lmj623565791/article/details/37620057) 데이터가 손실되지 않도록 RabbitMQ는 메시지 확인 메커니즘, 즉 acknowledgments를 지원합니다.데이터가 소비자에게만 전달되지 않고 정확하게 처리될 수 있도록 하기 위해서 no-ack을 사용할 수 없습니다.데이터를 처리한 후ack을 보내야 합니다.데이터를 처리한 후에 보내는ack은 RabbitMQ 데이터가 이미 수신되었음을 알려주고 처리가 완료되면 RabbitMQ는 안전하게 삭제할 수 있습니다.만약 Consumer가 탈퇴했지만 ack을 보내지 않았다면 Rabbit MQ는 이 메시지를 다음 Consumer로 보낼 것입니다.이렇게 하면 Consumer가 비정상적으로 종료된 상황에서도 데이터를 잃어버리지 않을 것을 보장한다.기본적으로 메시지 확인은 열려 있습니다. (enabled)Message durability 메시지 지속화 메커니즘RabbitMQ에서 종료되거나 Crash가 데이터를 잃어버리지 않도록 queue와 메시지를 오래 유지해야 합니다.Fair dispatch 공평한 배포 메커니즘이 기본적으로 RabbitMQ는 n번째 메시지를 n번째 Consumer에 배포합니다.물론 n은 나머지 것이다.Consumer에 unacked Message가 있든 없든 간에 이 기본 메커니즘에 따라 나누어집니다.그렇다면 만약에 소비자 업무가 비교적 무겁다면 어떤 소비자는 기본적으로 할 일이 없고, 어떤 소비자는 쉴 틈이 없다.basic.qos 방법 설정 prefetch_count=1 .이렇게 하면 RabbitMQ는 모든 Consumer가 같은 시간에 최대 하나의 메시지를 처리할 수 있게 한다.다시 말하면 이 Consumer의 ack을 받기 전에 새로운 메시지를 rabbitmqctl 명령행 관리 도구인 rabbitmqctl에 나누어 주지 않습니다. 이것은 간단한 명령행 도구로 RabbitMQ Server를 관리하는 데 사용됩니다. 셸에서 다음과 같은 명령을 실행하면 각종 명령의 가격을 볼 수 있습니다.
Usage:
rabbitmqctl [-n ] [-q] []
Options:
-n node

-q

Commands:
stop []

stop_app

start_app

wait 

reset

force_reset

rotate_logs 

join_cluster []

cluster_status

change_cluster_node_type disc | ram

forget_cluster_node [--offline]

update_cluster_nodes clusternode


add_user  

delete_user 

change_password  

clear_password 

set_user_tags   ...

list_users

add_vhost 

delete_vhost 

list_vhosts [ ...]

set_permissions [-p ]    

clear_permissions [-p ] 

list_permissions [-p ]

list_user_permissions 


set_parameter [-p ]   

clear_parameter [-p ]  

list_parameters [-p ]


set_policy [-p ]     [] 

clear_policy [-p ] 

list_policies [-p ]


list_queues [-p ] [ ...]

list_exchanges [-p ] [ ...]

list_bindings [-p ] [ ...]

list_connections [ ...]

list_channels [ ...]

list_consumers [-p ]

status

environment

report

eval 

close_connection  

trace_on [-p ]

trace_off [-p ]

set_vm_memory_high_watermark 

must be a member of the list [name, tracing].
The list_queues, list_exchanges and list_bindings commands accept an optional virtual host parameter for which to display results. The default value is “/”.
must be a member of the list [name, durable, auto_delete, arguments, policy, pid, owner_pid, exclusive_consumer_pid, exclusive_consumer_tag, messages_ready, messages_unacknowledged, messages, consumers, active_consumers, memory, slave_pids, synchronised_slave_pids].
must be a member of the list [name, type, durable, auto_delete, internal, arguments, policy].
must be a member of the list [source_name, source_kind, destination_name, destination_kind, routing_key, arguments].
must be a member of the list [pid, name, port, host, peer_port, peer_host, ssl, ssl_protocol, ssl_key_exchange, ssl_cipher, ssl_hash, peer_cert_subject, peer_cert_issuer, peer_cert_validity, last_blocked_by, last_blocked_age, state, channels, protocol, auth_mechanism, user, vhost, timeout, frame_max, client_properties, recv_oct, recv_cnt, send_oct, send_cnt, send_pend].

좋은 웹페이지 즐겨찾기