JAVA에 해당하는 글 50

[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);

}


댓글()

[RabbitMQ] 설치 및 용도

JAVA|2013. 10. 22. 17:14

RabbitMQ 에 대한 글이 별로 없는것 같아서

공부겸 블로그에 적는다

적은 내용이 100% 맞는 이야기는 아니니 틀린 부분은 말해주기 바람


공식 홈 : http://www.rabbitmq.com/


RabbitMQ

미들 웨어 시스템으로

홈페이지에 있는 RabbitMQ Server 를 설치하여 띄우면

메세지를 날리는 클라이언트 프로그램의 메세지를 

RabbitMQ Server(Queue)가 받아 가지고 있다가

메세지를 받는 서버측이 가져가도록 하는 방식


튜토리얼을 돌려봐서 느낀점은

RabbitMQ Server를 미들웨어 위치에 띄우고

Sender와 Receiver를 만들어 사용하면 되는듯..


RabbitMQ Server는 다양한 플러그인을 지원 하는가본데..

사용해본건 'Management' 플러그인~! 각 Queue 에 얼마만큼 데이터가 쌓이고 상태들을 바로바로 확인 가능하기에 참 편하다..

(물론 큐 생성 및 exchange도 확인 및 설정 가능..)


일단 다 WIndow 기반으로만 설치했기에.. 

http://www.rabbitmq.com/download.html

에서 Windows 꺼로 받으면 됨..

Manual 설치하려다가 Erlang 을 설치해야 해서 귀찮아서 결국은 그냥.. 

자동설치로..^^:



댓글()