나는 오랫동안 Spring Boot를 작성하지 않았습니다. 최근에 스프링 클라우드 버스를 쓰고있었습니다. 컨텐츠는 관련성이 높기 때문에 AMQP의 통합에 대한 게시물을 추가합니다.
메시지 중개인 및 AMQP 소개
메시지 중개인은 메시지 검증, 전송 및 라우팅을위한 아키텍처 모델입니다. 설계 목표는 주로 다음 시나리오에서 사용됩니다.
AMQP는 메시지 미들웨어를위한 열린 표준 응용 프로그램 계층 프로토콜 인 Advanced Message Queuing Protocol의 약어입니다. AMQP는 이러한 기능을 정의합니다.
RabbitMq
이 기사에서 소개 될 RabbitMQ는 AMQP 프로토콜과 함께 구현 된 미들웨어 제품입니다. 여러 운영 체제 및 여러 프로그래밍 언어를 지원할 수 있으며 거의 모든 주류 엔터프라이즈 레벨 기술 플랫폼을 다룰 수 있습니다.
설치하다
RabbitMQ 공식 웹 사이트 https://www.rabbitmq.com/download.html의 다운로드 페이지에서 다양한 운영 체제에 대한 설치 패키지 및 지침을 얻을 수 있습니다. 여기서는 일반적으로 사용되는 몇 가지 플랫폼을 하나씩 설명 할 것입니다.
다음은 우리가 사용하는 Erlang 및 Rabbitmq 서버의 버전 설명입니다.
Windows 설치
Erland를 설치하고 공식 다운로드 페이지 http://www.erlang.org/downloads를 통해 EXE 설치 패키지를 가져 와서 직접 열고 설치를 완료하십시오.
공식 다운로드 페이지 https://www.rabbitmq.com/download.html을 통해 Rabbitmq를 설치하고 EXE 설치 패키지를 받으십시오.
다운로드가 완료되면 설치 프로그램을 직접 실행하십시오.
RabbitMQ 서버 설치가 완료되면 자동으로 서비스로 등록하고 기본 구성으로 시작합니다.
Mac OS X 설치
Mac OS X에서 Brew Tool을 사용하면 RabbitMQ 서버를 쉽게 설치할 수 있습니다. 다음 명령 만 따르십시오.
위 명령을 통해 Rabbitmq 서버 명령은/usr/local/sbin에 설치되며 사용자의 환경 변수에 자동으로 추가되지 않으므로 다음 컨텐츠를 .bash_profile 또는 .profile 파일에 추가해야합니다.
경로 = $ Path :/usr/local/sbin
이러한 방식으로 RabbitMQ-Server 명령을 통해 RabbitMQ 서버를 시작할 수 있습니다.
우분투 설치
우분투에서는 APT 저장소를 사용하여 설치할 수 있습니다.
Erlang을 설치하고 실행 : APT-GET 설치 ERLANG
다음 명령을 실행하여 /etc/apt/sources.list.d에 APT 저장소를 추가하십시오.
echo 'deb http://www.rabbitmq.com/debian/ 테스트 메인'| sudo tee /etc/apt/sources.list.d/rabbitmq.list
APT 저장소의 패키지 목록 업데이트 및 Sudo apt-Get 업데이트 명령을 실행하십시오.
토끼 서버를 설치하고 sudo apt-get 설치 Rabbitmq-Server 명령을 실행하십시오.
토끼 관리
구성 파일 액세스 또는 웹 액세스를 통해 직접 관리 할 수 있습니다. 아래는 웹을 통해 관리하는 방법을 소개합니다.
RabbitMQ-Plugins를 실행하여 RabbitMQ_Management 명령을 활성화하여 웹 관리 플러그인을 활성화하여 브라우저를 통해 관리 할 수 있습니다.
> Rabbitmq-Plugins 활성화 Rabbitmq_management 다음 플러그인이 활성화되었습니다 : Mochiweb WebMachine Rabbitmq_web_dispatch amqp_client Rabbitmq_management_agent Rabbitmq_managementaplying 플러그인 구성@PC-201602152056에 플러그인 구성을 시작했습니다.
브라우저를 열고 http : // localhost : 15672/를 방문하고 기본 사용자 게스트와 함께 로그인하면 비밀번호도 게스트입니다. 다음 그림에서 관리 페이지를 볼 수 있습니다.
그림에서 이전 장에서 언급 한 몇 가지 기본 개념 (연결, 채널, 교환, 대기열 등을 볼 수 있습니다. 처음으로 사용하는 독자는이를 클릭하여 Rabbitmq 서버의 서버 측면에 익숙해 질 수 있습니다.
여기에서 사용자를 관리하려면 관리자 탭을 클릭하십시오.
스프링 부트 통합
아래에서는 Spring Boot 응용 프로그램에 RabbitMQ를 통합하고 메시지 보내기 및 수신의 간단한 예를 구현하여 RabbitMQ에 대한 직관적 인 느낌과 이해가 있습니다.
Spring Boot에 RabbitMQ를 통합하는 것은 매우 쉽습니다. 이전에 스타터 POM을 도입했으며 AMQP 모듈은 RabbitMQ를 잘 지원할 수 있습니다. 통합 프로세스에 대해 자세히 설명해 봅시다.
"Rabbitmq-Hello"라는 새로운 스프링 부트 프로젝트를 만듭니다.
POM.XML에서 Spring-Boot-Starter-AMQP가 RabbitMQ를 지원하는 데 사용되는 다음 종속성이 도입됩니다.
<부모> <groupid> org.springframework.boot </groupid> <artifactid> Spring-Boot-Starter-Parent </artifactid> <3.7. release </version> <apremativepath/> <!-REPOSITION-> </parent> <pectionals> <groupId> org.spramframframwork.spramework.spramewwork.spramework.spramework.spramegring. <Artifactid> Spring-Boot-Starter-Amqp </artifactid> </fectionency> <prectionemency> <groupid> org.springframework.boot </groupid> <trifactid> spring-boot-starter-test </artifactid> <Scope> test </scope> </dependemencies>
Application.Properties에서 RabbitMQ에 대한 연결 및 사용자 정보를 구성하십시오. 사용자는 위의 설치 컨텐츠로 돌아가 관리 페이지에서 사용자를 만들 수 있습니다.
Spring.application.name = Rabbitmq-Hello
spring.rabbitmq.host = localhostspring.rabbitmq.port = 5672spring.rabbitmq.username = springspring.rabbitmq.password = 123456
메시지 제작자 발신자를 만듭니다. AMQPTEMPLATE 인터페이스는 AMQPTEMPLATE 인터페이스의 인스턴스를 주입하여 AMQP 프로토콜에 대한 기본 작업 세트를 정의합니다. Spring Boot에서는 구성에 따라 특정 구현이 주입됩니다. 이 프로듀서에서는 문자열을 생성하여 Hello라는 대기열로 보냅니다.
@componentpublic 클래스 발신자 {@autowired private amqptemplate rabbittemplate; public void send () {문자열 context = "hello" + new date (); System.out.println ( "발신자 :" + 컨텍스트); this.rabbittemplate.convertandSend ( "Hello", Context); }} 메시지 소비자 수신자를 만듭니다. @RabBitListener 주석은이 클래스의 hello 큐의 청취를 정의하고 @RabBithandler 주석을 사용하여 메시지의 처리 방법을 지정합니다. 따라서 소비자는 hello 큐의 소비를 인식하고 소비 작업은 출력 메시지의 문자열 내용입니다.
@component @rabbitlistener (queues = "hello") 공개 클래스 수신기 {@RabbithAndler public void process (string hello) {System.out.println ( "수신기 :" + hello); }} RabbitMQ 구성 클래스 RabbitConfig를 작성하여 큐, 스위치 및 라우팅과 같은 고급 정보를 구성하는 데 사용됩니다. 여기서 우리는 기본 생산 및 소비 프로세스를 완료하기 위해 시작하는 데 중점을두고 먼저 구성을 최소화하여 정의합니다.
@ConfigurationPublic 클래스 RabbitConfig {@bean public queue helloqueue () {return new queue ( "Hello"); }} 기본 응용 프로그램 클래스 생성 :
@SpringBootApplicationPublic Class HelloApplication {public static void main (String [] args) {springApplication.run (helloApplication.class, args); }} 메시지 제작을 호출 할 단위 테스트 클래스를 만듭니다.
@RunWith (SpringJunit4classRunner.class) @SpringApplicationConfiguration (classes = helloApplication.class) 공개 클래스 helloApplicationTests {@autowized 개인 발신자; @test public void hello ()는 예외 {sender.send (); }}프로그램 작성을 완료 한 후 실행하십시오. 먼저 RabbitMQ 서버가 시작되었는지 확인한 다음 다음 작업을 수행하십시오.
콘솔에서 애플리케이션 메인 클래스를 시작합니다. 콘솔에서 다음 컨텐츠를 볼 수 있습니다. 프로그램은 127.0.0.1:5672에서 SpringCloud에 액세스하는 데 연결됩니다.
코드를 다음과 같이 복사하십시오. osarccachingconnectionfactory : 새 연결 생성 : simpleconnection@29836d32 [delegate = amqp : //[email protected] : 5672/]
동시에 RabbitMQ 제어판을 통해 연결중인 현재 연결 및 채널이 포함 된 항목이 있음을 알 수 있습니다.
단위 테스트 클래스를 실행하면 콘솔에서 다음 출력을 볼 수 있으며 메시지가 RabbitMQ 서버의 hello 대기열로 전송됩니다.
발신자 : Hello Sun 9 월 25 일 11:06:11 CST 2016
응용 프로그램의 주요 클래스의 콘솔로 전환하면 다음 출력을 볼 수 있으며 소비자는 Hello 대기열의 리스너 프로그램을 실행하고 수신 된 메시지 정보를 출력합니다.
수신기 : Hello Sun Sep 25 11:06:11 CST 2016
위의 예를 통해 Spring Boot Application에 Spring-Boot-Starter-AMQP 모듈을 도입하고 RabbitMQ 메시지 생산 및 소비의 개발 컨텐츠를 완료하도록 구성했습니다. 그러나 실제 응용 프로그램에서는 여전히 입증되지 않은 많은 컨텐츠가 있으므로 여기에는 더 많은 설명을하지 않을 것입니다. 독자는 공식 RabbitMQ 튜토리얼을 스스로 확인하여보다 포괄적 인 이해를 얻을 수 있습니다.
완전한 예 : 5-2-1 장
오픈 소스 중국 : http://git.oschina.net/diidispace/springboot-learning/tree/master/chapter5-2-1
github : https://github.com/dyc87112/springboot-learning/tree/master/chapter5-2-1
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.