slwl2.0
BaseMapper
消息到达交换机没有到达队列
记录日志,returncallback
package com.sl.mq.config;import cn.hutool.core.util.StrUtil;
import com.sl.transport.common.constant.Constants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Configuration;@Slf4j
@Configuration
public class MessageConfig implements ApplicationContextAware {/*** 发送者回执 没有路由到队列的情况** @param applicationContext 应用上下文* @throws BeansException 异常*/@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {// 获取RabbitTemplateRabbitTemplate rabbitTemplate = applicationContext.getBean(RabbitTemplate.class);// 设置ReturnCallbackrabbitTemplate.setReturnsCallback(message -> {if (StrUtil.contains(message.getExchange(), Constants.MQ.DELAYED_KEYWORD)) {//延迟消息没有发到队列是正常情况,无需记录日志return;}// 投递失败,记录日志log.error("消息没有投递到队列,应答码:{},原因:{},交换机:{},路由键:{},消息:{}",message.getReplyCode(), message.getReplyText(), message.getExchange(), message.getRoutingKey(), message.getMessage());});}}
docker容器主机相对目录路径挂载
docker run -d \
--name mongodb \
-p 27017:27017 \
--restart=always \
-v mongodb:/data/db # /var/lib/docker/volumes 下面会创建一个mongodb文件夹与容器/data/db 挂载\
-e MONGO_INITDB_ROOT_USERNAME=sl \
-e MONGO_INITDB_ROOT_PASSWORD=123321 \
mongo:4.4
/bin/bash 就是root@heima
docker exec -it mongodb /bin/bash