rabbitmq笔记

1.安装rabbitmq

推荐使用docker安装rabbitmq, 简单快速。

######安装docker

#下载docker-ce的yum源

(yum -y install wget #安装wget)

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

#把docker-ce源的地址修改为清华源的地址

sed -i 's#download.docker.com#mirrors.tuna.tsinghua.edu.cn/docker-ce#g' /etc/yum.repos.d/docker-ce.repo

#更新docker-ce.repo

yum makecache fast

#安装docker-ce

yum install -y docker-ce

#启动

systemctl start docker

#检查是否安装成功

ps -ef |grep docker

docker version

######docker 安装 rabbitmq

#下载镜像

docker pull rabbitmq:3.8.12-management-alpine

#查看所有镜像

docker images

#启动Rabbit MQ容器

docker run -d --hostname rabbit_host1 --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:3.8.12-management-alpine

#管理页面

http://127.0.0.1:15672

2.推送消息给rabbitmq

###springboot集成rabbitmq

#引入依赖

<dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-amqp</artifactId>

</dependency>

#application.properties

server.servlet.context-path=/event

spring.application.name=event-send

server.port = 8090

spring.rabbitmq.addresses=7.211.2.3:5672,7.211.2.4:5672,7.211.2.5:5672

spring.rabbitmq.port=5672

spring.rabbitmq.username=admin

spring.rabbitmq.password=123456

spring.rabbitmq.virtual-host=cmp

spring.rabbitmq.dynamic=true

#配置类RabbitConfig

package com.enmotech.event.send;

import org.springframework.amqp.core.Queue;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

@Configuration

public class RabbitConfig {

    @Bean

    public Queue Queue() {

        return new Queue("bocloud.dbm.alarm.queue");

    }

}

#生产者类(发送)SendToRabbitMq

package com.enmotech.event.send;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

import lombok.extern.slf4j.Slf4j;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.amqp.core.Message;

import org.springframework.amqp.core.MessageBuilder;

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

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

import org.springframework.web.bind.annotation.*;

/**

* @date :2021/6/24 16:50

*/

@Slf4j

@RestController

@RequestMapping("/mq")

public class SendToRabbitMq {

    private static final Logger LOGGER = LoggerFactory.getLogger(SendToRabbitMq.class);

    private final static String QUEUE_NAME = "bocloud.dbm.alarm.queue";

    private final static String KEY="eventStatus";

    @Autowired

    private RabbitTemplate rabbitTemplate;

    @GetMapping("/test")

    public String test() {

        LOGGER.info("test...");

        return "success!";

    }

    @PostMapping("/send")

    public String send(@RequestBody String msg) {

        LOGGER.info("ready to send,msg={}",msg);

        JSONObject jsonObject = JSON.parseObject(msg);

        String message = JSON.toJSONString(jsonObject);

        Message m  = MessageBuilder.withBody(message.getBytes())

                .setContentType("text/json")

                .setContentEncoding("UTF-8")

//                .setMessageId(UUID.randomUUID() + "")

                .build();

        rabbitTemplate.convertAndSend(QUEUE_NAME,m);

        LOGGER.info("send complete!");

        return "send success";

    }

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容