rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo

一.安装和配置

1.rabbitmq由Erlang语言编写的面向消息的中间件.所以安装时要先安装Erlang.

Erlang下载页面: http://www.erlang.org/downloads 选择对于操作系统和需要的版本下载.

RabbitMQ的下载页面: https://www.rabbitmq.com/download.html

下载完exe安装包之后,直接运行,修改下存储路径,一路下一步,下一步就可以了.(注意,存储路径里面最好不要有中文.)

rabbitMQ server安装完成之后,会自动注册成一个服务.可以通过运行 输入services.msc查看服务如下.

rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo

rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo.

可以看到服务正常启动了.接下来配置erlang和rabbitmq的环境变量,方便我们执行命令操作.

2.添加系统变量  ERLANG_HOME 和RABBITMQ_SERVER .变量值分别为 对应的bin目录/sbin目录(rabbitmq) 上一级目录所在路径.

rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demorabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo

然后在Path路径后面添加  %ERLANG_HOME%\bin;%RABBITMQ_SERVER%\sbin;  注意;号分隔开,结尾添加;结束.

打开cmd命令行,输入rabbitmq-service 出现如下内容表示配置成功.

rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo

3.**RabbitMQ插件.

cmd窗口执行  rabbitmq-plugins.bat enable rabbitmq_management

rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo

关闭rabbitmq-service服务  命令  : rabbitmq-service.bat stop

rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo

安装rabbitmq-service服务 命令: rabbitmq-service.bat install

rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo

启动rabbitmq-service服务 命令: rabbitmq-service.bat start

rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo

4.查看默认用户 rabbitmqctl.bat list_users 看到只有一个系统默认用户 guest 

rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo

5.登录rabbitmq管理首页 localhost:15672  ,默认账户密码, guest

rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo

6.选择 tags -->admin  添加一个我们的测试账户.

用户名,密码暂定为springcloud. tags设置为administrator(最大权限).

rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo

点击旁边的?可以查看有这几个分类的详细说明.我这里简单的说下.

①none:不能访问management plugin.

②management:用户可以通过AMQP做的任何事外加如下内容:
列出自己可以通过AMQP登入的virtual hosts  .
查看自己的virtual hosts中的queues, exchanges 和 bindings.
查看和关闭自己的channels 和 connections.

查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动.

③policymaker:management可以做的任何事外加如下内容:

查看、创建和删除自己的virtual hosts所属的policies和parameters.

monitoring:management可以做的任何事外加如下内容:
列出所有virtual hosts,包括他们不能登录的virtual hosts.
查看其他用户的connections和channels.
查看节点级别的数据,如clustering和memory的使用情况.

查看真正的关于所有virtual hosts的全局的统计信息.

administrator:policymaker和monitoring可以做的任何事外加如下内容:
创建和删除virtual hosts.
查看、创建和删除users.
查看、创建和删除permissions.

关闭其他用户的connections.

设置完后点击添加用户.添加完的用户应该如下图所示,no access.我们点击该用户,进去后设置下permissions即可.

rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo

设置完后如下图所示

rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo

7.创建springboot工程,添加核心依赖. compile('org.springframework.boot:spring-boot-starter-amqp')

修改配置文件application.properties.添加如下内容

spring.application.name=rabbitmq-hello
spring.rabbitmq.host=192.01.01.01(本机调试就写本机ip地址.这里我是随便写的一个替代的...)
spring.rabbitmq.port=5672
spring.rabbitmq.username=springcloud(这个是刚才添加的有权限的用户)
spring.rabbitmq.password=springcloud

8.添加rabbitMQ的config配置类

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 helloQueue() {
        return new Queue("helloQueue");
    }

}

9.添加消息发送者类

import java.util.Date;

import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class SendController {

    @Autowired
    private AmqpTemplate rabbitTemplate;

    @RequestMapping("/send")
    public void send() {
        String context = "hello" + new Date();
        System.out.println("Send : " + context);
        this.rabbitTemplate.convertAndSend("helloQueue", context);
    }
}

10.添加消息接收者类

import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RabbitListener(queues = "helloQueue")
public class ReceiveController {

    @RabbitHandler
    @RequestMapping("/receive")
    public void receive(String hello) {
        System.out.println("Receive : " + hello);
    }

}

11.启动 启动类,然后调用我们的发送者,就会出现如下内容.

rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo

可以看到发送者发送的消息和接收者收到的消息.

12.to be continued.