阅读 195

初次使用springboot+RabbitMQ

Android敲累了,玩玩java

安装

这个地方我使用的docker来安装的RabbitMQ,注意点是docker的登录必须使用docker ID来登录才能pull下载镜像,使用email是不能使用pull命令。

docker下搜索一下rabbitmq

docker search rabbitmq:management

下载rabbitmq

docker pull rabbitmq:management

运行rabbitmq

docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 docker.io/rabbitmq:3-management


安装完成也可以运行了,然后在浏览器输入http://http://localhost:15672/ ,跳转到RabbitMQ的登录界面,输入默认的用户名和密码,用户名和密码一样,都是guest。

guest的账户只能限制localhost访问,所以,我们得重新创建一个账户

添加用户

先登录guest这个账户,然后选择Admin这个选项框

然后添加Username,password和Tags,这个Tags给设置一个最高权限administrator,然后最后点“Add user”添加用户

这时候添加的用户是No access,是不能访问的,我们还是需要给他设置权限

然后点击root这个用户,对root用户进行管理,点击set permission就可以增加权限了,上面那一行黄色的提示也就消失不见了

使用

项目目录结构图

添加Maven依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--rabbitMQ-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
    </dependencies>
复制代码

Main启动类

@SpringBootApplication
public class Main {

    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
    }
}

复制代码

RabbitMQConfig配置类

@Configuration
public class RabbitMQConfig {

    /**
     * 创建一个名叫hello的队列
     * @return
     */
    @Bean
    public Queue queue() {
        return new Queue("hello");
    }
}

复制代码

RabbitProducerController 生产者控制器

@RestController
public class RabbitProducerController {
    @Autowired
    private AmqpTemplate rabbitTemplate;

    /**
     * 生产者向hello消息队列发送消息
     * @param name
     * @return
     */
    @RequestMapping("/produce")
    public String produce(@RequestParam String name) {
        rabbitTemplate.convertAndSend("hello", "send msg is " + name);
        return "消息发送成功";
    }
}

复制代码

RabbitConsumer 消费者

@Component
@RabbitListener(queues = "hello")
public class RabbitConsumer {

    @RabbitHandler
    public void process(String msg) {
        System.out.println("------------" + msg);
    }
}

复制代码

application.properties配置

#配置rabbitMQ
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=root
spring.rabbitmq.password=root
复制代码

然后我们运行Main类的main方法启动springboot

在浏览器中输入http://localhost:8080/produce?name=lisi

然后看下消费者已经接收到消息并输出

文章分类
后端