Spring Boot整合RabbitMQ示例

2021-09-25 19:14:58 字數 2764 閱讀 8086

1、什麼是rabbitmq?

rabbitmq 即乙個訊息佇列(訊息中介軟體),主要是用來實現應用程式的非同步和解耦,同時也能起到訊息緩衝,訊息分發的作用(應用解耦和流量削峰)

訊息中介軟體最主要的作用是解耦,中介軟體最標準的用法是生產者生產訊息傳送到佇列,消費者從佇列中拿取訊息並處理,生產者不用關心是誰來消費,消費者不用關心誰在生產訊息,從而達到解耦的目的。在分布式的系統中,訊息佇列也會被用在很多其它的方面,比如:分布式事務的支援,rpc的呼叫等等。

windows環境下的安裝rabbitmq可以參考如下:

2、spring boot整合rabbitmq

a、引入rabbitmq依賴:

org.springframework.boot

spring-boot-starter-amqp

b、配置資訊:

#rabbitmq

spring.rabbitmq.host=localhost

spring.rabbitmq.port=5672

spring.rabbitmq.username=guest

spring.rabbitmq.password=guest

c、註冊佇列

import org.springframework.amqp.core.queue;

import org.springframework.context.annotation.bean;

import org.springframework.context.annotation.configuration;

@configuration

public class rabbitmqconfig

}

d、生產者

package com.guxf.demo.service;

import org.springframework.amqp.core.amqptemplate;

import org.springframework.beans.factory.annotation.autowired;

import org.springframework.stereotype.service;

import com.guxf.demo.domain.rabbitmqconfig;

@service

public class sender

}

e、接收者

package com.guxf.demo.service;

import org.springframework.amqp.core.amqptemplate;

import org.springframework.amqp.rabbit.annotation.rabbitlistener;

import org.springframework.beans.factory.annotation.autowired;

import org.springframework.stereotype.service;

@service

public class receiver

}

package com.guxf.demo.domain;

import org.springframework.amqp.core.binding;

import org.springframework.amqp.core.bindingbuilder;

import org.springframework.amqp.core.queue;

import org.springframework.amqp.core.topicexchange;

import org.springframework.amqp.rabbit.connection.connectionfactory;

import org.springframework.amqp.rabbit.listener.******messagelistenercontainer;

import org.springframework.amqp.rabbit.listener.adapter.messagelisteneradapter;

import org.springframework.context.annotation.bean;

import org.springframework.context.annotation.configuration;

import com.guxf.demo.service.receiver;

@configuration

public class rabbitmqconfig

@bean

public topicexchange exchange()

@bean

public binding binding(queue queue, topicexchange exchange)

@bean

******messagelistenercontainer container(connectionfactory connectionfactory,

messagelisteneradapter listeneradapter)

@bean

messagelisteneradapter listeneradapter(receiver receiver)

}

SpringBoot使用訊息中介軟體RabbitMQ

首先在docker中安裝rabbitmq,pull 帶有web介面的 docker pull rabbitmq 3 management5672為客戶端,15672為web介面埠 docker run d p5672 5672 p15672 15672 name rabbitmq01 映象id簡要介...

springBoot整合dubbo整合專案

傳統spring 整合dubbo,需要繁瑣的編寫一堆堆的 xml 配置檔案 而springboot整合dubbo後,不在需要寫 xml,通過jar包引用,完 成整合,通過註解的形式完成配置。提高我們的開發效率 目錄結構 1 服務層生產者開發 hs ldm server service 1.1新增du...

SpringBoot整合系列 整合Swagger2

io.springfox springfox swagger2 2.7.0 io.springfox springfox swagger ui 2.7.0 一般無配置項,必要時可以新增自定義配置項,在配置類中讀取 swagger2的配置內容僅僅就是需要建立乙個docket例項 configurati...