Springboot项目整合Rabbitmq详细教程(1)

name: 3d-gis

datasource:

driver-class-name: org.postgresql.Driver

url: jdbc:postgresql://172.16.10.201:5432/3d_gis

username: postgres

password: postgres

rabbitmq:

publisher-confirms: true

publisher-returns: true

host: 172.16.10.201

port: 5672

username: leaniot

password: leaniot

virtual-host: /3d_gis

listener:

simple:

acknowledge-mode: manual

direct:

acknowledge-mode: manual

RabbitMQ配置类

import org.springframework.amqp.core.*;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

/**

  • RabbitMQ 配置

  • @author tarzan

  • @version 1.0

  • @date 2021年05月18日 09:15:40

  • @since JDK1.8

*/

@Configuration

public class RabbitMQConfig{

/** gis图形交换机 */

public static final String GIS_GRAPHICS_EXCHANGE = “3d_gis_exchange”;

/** gis图形数据接收序列 */

public static final String GIS_DATA_RECEIVE_REQUEUE = “gis_data_queue”;

/** gis图形数据返回(发送)序列 */

public static final String GIS_DATA_SEND_QUEUE = “gis_result_queue”;

@Bean

public Queue gisDataReceiveQueue () {

return new Queue(GIS_DATA_RECEIVE_REQUEUE);

}

@Bean

public Queue gisDataSendQueue () {

return new Queue(GIS_DATA_SEND_QUEUE);

}

@Bean

public DirectExchange directExchange() {

return new DirectExchange(GIS_GRAPHICS_EXCHANGE);

}

@Bean

public Binding receiveBinding () {

return BindingBuilder.bind(gisDataReceiveQueue()).to(directExchange()).withQueueName();

}

@Bean

public Binding sendBinding () {

return BindingBuilder.bind(gisDataSendQueue()).to(directExchange()).withQueueName();

}

}

RabbitSender类

import java.util.UUID;

import lombok.extern.slf4j.Slf4j;

import org.springblade.gis.rabbitmq.confirm.RabbitReturnCallback;

import org.springblade.gis.rabbitmq.confirm.RabbitConfirmCallback;

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

import org.springframework.amqp.rabbit.core.RabbitTemplate;

import org.springframework.beans.factory.InitializingBean;

import org.springframework.stereotype.Component;

import javax.annotation.Resource;

@Component

@Slf4j

public class RabbitSender implements InitializingBean {

@Resource

private RabbitTemplate rabbitTemplate;

/**

  • 对外发送消息的方法

  • @param message 具体的消息内容

  • @throws Exception

*/

public void send(Object message) {

CorrelationData data = new CorrelationData(UUID.randomUUID().toString());

rabbitTemplate.convertAndSend(RabbitMQConfig.GIS_GRAPHICS_EXCHANGE, RabbitMQConfig.GIS_DATA_SEND_QUEUE, message, data);

}

@Override

public void afterPropertiesSet () {

rabbitTemplate.setConfirmCallback(new RabbitConfirmCallback());

rabbitTemplate.setReturnCallback(new RabbitReturnCallback());

rabbitTemplate.setMandatory(true);

}

}

RabbitReceiver类

import com.alibaba.fastjson.JSONArray;

import com.alibaba.fastjson.JSONObject;

import lombok.extern.slf4j.Slf4j;

import org.springblade.gis.modules.db.service.DbDataService;

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

import org.springframework.amqp.core.Message;

import org.springframework.stereotype.Component;

import com.rabbitmq.client.Channel;

import javax.annotation.Resource;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

@Component

@Slf4j

public class RabbitReceiver {

@Resource

private DbDataService dbDataService;

@Resource

private RabbitSender sender;

最后

做任何事情都要用心,要非常关注细节。看起来不起眼的、繁琐的工作做透了会有意想不到的价值。
当然要想成为一个技术大牛也需要一定的思想格局,思想决定未来你要往哪个方向去走, 建议多看一些人生规划方面的书籍,多学习名人的思想格局,未来你的路会走的更远。

更多的技术点思维导图我已经做了一个整理,涵盖了当下互联网最流行99%的技术点,在这里我将这份导图分享出来,以及为金九银十准备的一整套面试体系,上到集合,下到分布式微服务

决定未来你要往哪个方向去走, 建议多看一些人生规划方面的书籍,多学习名人的思想格局,未来你的路会走的更远。

更多的技术点思维导图我已经做了一个整理,涵盖了当下互联网最流行99%的技术点,在这里我将这份导图分享出来,以及为金九银十准备的一整套面试体系,上到集合,下到分布式微服务

[外链图片转存中…(img-fjCwIZJ4-1714466307150)]

[外链图片转存中…(img-Dl0S0dxk-1714466307151)]

[外链图片转存中…(img-bYwwiBfC-1714466307151)]

[外链图片转存中…(img-qYSOUng2-1714466307152)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 14
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值