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)]