[RabbitMQ] 튜토리얼 1 "Hello World"

JAVA|2013. 10. 22. 17:38

RabbitMQ는 튜토리얼이 참 쉽게(영어지만..-_-) 적혀있어서..

굳이 해석이나 한글로된게 없나 싶지만..


그래도 정리한다..

P 아이콘은 Producer(메세지 생산자) 아이콘이며 메세지를 생성하는 Client 프로그램 이라고 보면됨..


위의 Queue는 RabbitMQ내에 있는 것으로 메세지가 저장되는 Queue를 나타냄

추후 나타나겠지만 RabbitMQ는 많은 Queue를 가지고 있는 집합이라고 봐도 될듯..

(후에 나올 exchange도 가지고 있지만..)

위의 C아이콘은 Consumer(메세지 사용자) 아이콘이며 메세지를 소비? 가져다 쓰는 프로그램(서버) 이라고 보면 적당할듯..


튜토리얼 1 은 P가 "Hello"메세지를 Queue에 넣어서 C가 가져가서 보도록 하는 프로그램..


자.. 이제 P 부터 만들어보자

아무래도 Main에 짜는게 편하겠지..

public static void main(String[] args) {
    String QUEUE_NAME = "Basic_Queue";
    //큐 이름
    ConnectionFactory cf = new ConnectionFactory();
    //커넥션 팩토리 선언
    cf.setHost("localhost");
    //RabbitMQ 서버(미들웨어) Host 주소 설정
    Connection conn = cf.newConnection();
    //연결하고
    Channel channel = conn.createChannel();
    //채널을 만든다.
    channel.queueDeclare(QUEUE_NAME,false,false,false,null);
    String Message = "Hello World!";
    channel.basicPublish("",QUEUE_NAME,null,Message.getBytes());
    System.out.println("Send : " + Message);
    //(실제 사용할때는 try가 있어야겠지..)
    channel.close();
    conn.close();

}

null이나 false 로 일단 적어둔 설정들은 후에 하나씩 하나씩 설명이 나오니 무시하도록 하고..

일단 이렇게 하면 P 는 생성 끝..



자 이제 C를 만들어 보자.. 거의 비슷하다..



public static void main(String[] args) {
String QUEUE_NAME = "Basic_Queue";
ConnectionFactory cf = new ConnectionFactory();
cf.setHost("localhost");
Connection conn = cf.newConnection();
Channel channel = conn.createChannel();
channel.queueDeclare(QUEUE_NAME,false,false,false,null);
//여기까진 거의 같다
System.out.println("Message 기다리는중");
QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume(QUEUE_NAME, true, consumer);
String get_message;
while(true){
QueueingConsumery.Deliver delivery = consumer.nextDelivery();
//QueueingConsumer.Delivery 말고 Delivery 만 적어도 되긴하는데..예제는 이러네
get_message = new String(delivery.getBody());
System.out.println(get_message);

}


댓글()