분류 전체보기 (108) 썸네일형 리스트형 AMQP 프로토콜의 메시지 소비 과정 AMQP 프로토콜 사용하기 메시지를 발행을 실제로 실행하기 전에 다음과 같은 설정 단계를 거친다. Connection negotiation 과정 익스체인지 선언하기 큐 선언하기 큐와 익스체인지 연결하기 RabbitMQ에 메시지 발행하기 RabbitMQ에 메시지 소비하기 1. 클라이언트와 RabbitMq가 통신할때 형식을 정의하는 Connection negotiation 과정 클라이언트 라이브러리는 amqp 프로토콜의 복잡한 통신 절차를 숨기고 있다 라이브러리는 이런 동작을 신경쓰지 않을 수 있다는 것에 장점이 있다 rabbitmq와 첫번째 연결을 맺기 위해 클라이언트가 취해야 하는 단계를 알아보자. rabbitmq는 코어서버와 통신하는 모든 부분에서 RPC(remote procedure call) 패턴으.. rabbitMq Exchange 라우팅 패턴 Exchange 라우팅 패턴 RabbitMQ 최대 강점은 애플리케이션이 제공한 라우팅 정보를 기반으로 서로 다른 큐로 유연하게 라우팅 가능 RabbitMQ의 4가지 기본 유형의 익스체인지와 유형을 알아본다. Direct Exchange Fanout Exchange Topic Exchange Headers Exchange Direct Exchange 다이렉트 익스체인지는 라우팅 키를 기반으로 메시지를 큐에 전달한다. 특정 큐에 메시지를 하나씩 전달한다. RabbitMq에 기본으로 내장돼 있어서 추가 플러그인이 필요하지 않다.(매우 단순함) direct exchange 는 unicast routing 방식에 적합하다.. 여기서 unicast routing 이란.... 고유 주소로 식별된 하나의 네트워크 목적.. AMQ 모델과 Exchange, Queue, Binding 에 대해 * rabbitmq 강점과 유연성은 amqp 스펙에서 나온다. - rabbitmq를 설명하기 앞서 amqp가 무엇인지 부터 알아보자. amqp (advanced message queuing protocol) - 메시징 프로토콜!!!! - amqp 스펙은 여러가지가 있는데 rabbitmq는 0-8, 0-9-1과 밀접하게 관련돼 있다. - rabbitmq는 amqp 스펙을 구현했는데, 주요 아케텍쳐와 통신 방식이 핵심이다. AMQP 스펙은 HTTP 프로토콜과 달리 네트워크 프로토콜의 정의뿐 아니라 서버 측 서비스와 동작 방식도 정의한다. AMQ 모델은 메시지 라우팅 동작을 정의 하는 메시지 브로커의 세 가지 추상 컴포넌트를 다음과 같이 정의한다. * 익스체인지 : 메시지 브로커에서 큐에 메시지를 전달하는 컴.. rabbitmq 를 왜 써야 하는지 프로젝트를 하면서 rabbitmq, activemq 등 뒤에 MQ라고 붙은 단어들을 많이 들어왔다. 난 모르니깐 그냥 넘어가야지, 머 그냥 Message Queue 아닌가 하고 넘어갔는데 이번에 발표 준비를 하면서 한번 제대로 해보자라는 마음이 생겼다. 일단 카카오 메시징 서버 직군에서 지원 자격중에 MQ에 대한 경험이 들어가 있다. 엄청난 트레픽을 받는 네이버 웹툰에서도 웹 서비스 인프라 이해 쪽에 Message Queue에 이해를 원하는 자격 요건도 볼 수 있다. 이 두가지 사례만 봐도 Mq에 대한 이해는 선택이 아닌 필수로 다가 오고 있다. 어차피 알아두어야 할 기술 확실히 알아 두자. * rabbitmq가 필요한 이유 기존 상태의 문제점 -> 애플리케이션과 강하게 결합되어 있으면 db서버가 응답할.. vaadin 이란 Vaadin에는 UX, 성능 및 액세스 가능성에 맞게 웹 구성 요소가 포함되어 있다. 즉, 멋진 앱을 더 빠르게 만들 수 있습니다. 구성 요소는 모든 프레임 워크에서 사용할 수있는 표준 HTML 요소로 빌드된다. Vaadin은 Java로 웹 애플리케이션을 개발하는 가장 빠른 방법이다. 서버와 브라우저 간의 통신을 자동화하고 모든 Vaadin 구성 요소에 대한 고급 구성 요소 API를 제공한다. Creating CRUD UI with Vaadin15분의 시간만 있으면 가능하다. 간단한 JPA를 사용한 Vaadin UI를 만들 것이다. CRUD 기능을 완벽하게 갖춘 앱과 필터링 예제가 있다.Create the backend services스프링 예제에 나와있는 Accessing Data with JPA과 차.. rabbitmq tutorial 3 - routing Routing메시지 중 일부만 구독할 수 있게 해줄 겁니다. 예를 들어, 중요한 오류 메시지만 로그 파일에 전송(디스크 공간을 절약하기 위해)할 수 있으며, 동시에 콘솔에 있는 모든 로그 메시지를 print 할 수 있다. Bindings 이전 예에서 우리는 이미 바인딩을 만들고 있었다. 다음과 같은 코드를 리콜할 수 있음:channel.queueBind(queueName, EXCHANGE_NAME, "");binding은 exchange과 queue 사이의 관계다. queue는 이 exchange의 메시지에 관심이 있다. binding은 추가적인 routingKey 매개변수를 취할 수 있다. basic_publish 매개 변수와의 혼동을 피하기 위해 우리는 그것을 바인딩 키라고 부른다. 다음과 같이 키로.. rabbitmq tutorial 3 - Publish/Subscribe Publish/Subscribe이전에서 work queue 를 만들어 봤다. work queue 뒤에 있는 가정은 각 작업이 정확히 한 명의 작업자에게 전달된다. 이 부분에서 이번에는 완전히 다른 것을 할 것이다. 여러 Consumer들에게 메시지를 전달할 것이다. 이걸 publish/subscrib 패턴이라고 한다. 패턴을 설명하기 위해 간단한 로깅 시스템을 구축하자. 이 프로그램은 두 개의 프로그램으로 구성된다. 첫 번째 프로그램은 로그 메시지를 내보내고 두 번째 프로그램은 로그 메시지를 수신하고 출력한다. logging 시스템에서 수신기 프로그램의 모든 실행중인 사본은 메시지를 받을 것이다. 이렇게 하면 하나의 receiver를 실행하고 로그를 디스크로 보낼 수 있다. 동시에 다른 수신기를 실행하고.. rabbitmq tutorial 2 - Work Queues 와 Round Robbin Work Queues하나의 work queue를 만들고 이 큐는 여러 worker에게 시간이 많이 드는 작업을 분배하는데 사용된다. work queue는 resource-intensive한 일은 즉시 수행하지 않고, 완료 될 때까지 기다리지 않는다. 대신에 그 일을 나중에 하도록 일정을 잡는다. 작업을 메시지로 캡슐화하여 대기열에 보내고, 백그라운드에서 실행 중인 작업자 프로세스가 작업을 시작하고 최종적으로 작업을 실행한다. 이 개념은 짧은 HTTP 요청 기간 동안 복잡한 태스크를 처리할 수 없는 웹 응용 프로그램에서 특히 유용하다. 처음에는 간단한 hello world 였는데, 이제 복잡한 작업을 나타내는 문자열을 보내보자. 이미지나 PDF 파일 같은 실제 작업이 없으므로 Sread.sleep() 함수.. 이전 1 ··· 5 6 7 8 9 10 11 ··· 14 다음