-
[RabbitMQ] HelloWorldJava 2019. 6. 22. 01:37
2개의 자바 프로그램을 만들어본다. 생산자는 "Hello World"를 송신하고, 소비자는 메시지를 받아 출력한다.
아래 다이어그램에서 "P"는 우리의 생산자이고 "C"는 우리의 소비자이다. 중간에 박스는 큐를 나타낸다. - RabbitMQ는 소비자 대신에 메시지 버퍼를 제공한다.
RabbitMQ 자바 클라이언트 라이브러리를 사용하기 위해서는 SLF4J API와 SLF4J Simple이 필요하다. 해당 jar파일을 다운받아 자바클래스와 동일한 워킹 디렉토리에 위치시킨다.
송신 프로그램
import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; public class Send { private final static String QUEUE_NAME = "hello"; public static void main(String[] argv) throws Exception { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) { channel.queueDeclare(QUEUE_NAME, false, false, false, null); String message = "Hello World!"; channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8")); System.out.println(" [x] Sent '" + message + "'"); } } }
수신 프로그램
import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import com.rabbitmq.client.DeliverCallback; public class Recv { private final static String QUEUE_NAME = "hello"; public static void main(String[] argv) throws Exception { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); channel.queueDeclare(QUEUE_NAME, false, false, false, null); System.out.println(" [*] Waiting for messages. To exit press CTRL+C"); DeliverCallback deliverCallback = (consumerTag, delivery) -> { String message = new String(delivery.getBody(), "UTF-8"); System.out.println(" [x] Received '" + message + "'"); }; channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> { }); } }
출처
https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/java'Java' 카테고리의 다른 글
[Java] Meta Annotation 메타 어노테이션 (0) 2019.06.22 [Java] Access Modifiers 접근 제한자 (0) 2019.06.22 [RabbitMQ] MacOS에 설치하기 (0) 2019.06.22 [Java] Zookeeper Java 예제 (0) 2019.06.05 [Java] 문자열 입력 (0) 2019.06.01 댓글