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查看服务如下.
.
可以看到服务正常启动了.接下来配置erlang和rabbitmq的环境变量,方便我们执行命令操作.
2.添加系统变量 ERLANG_HOME 和RABBITMQ_SERVER .变量值分别为 对应的bin目录/sbin目录(rabbitmq) 上一级目录所在路径.
然后在Path路径后面添加 %ERLANG_HOME%\bin;%RABBITMQ_SERVER%\sbin; 注意;号分隔开,结尾添加;结束.
打开cmd命令行,输入rabbitmq-service 出现如下内容表示配置成功.
3.**RabbitMQ插件.
cmd窗口执行 rabbitmq-plugins.bat enable rabbitmq_management
关闭rabbitmq-service服务 命令 : rabbitmq-service.bat stop
安装rabbitmq-service服务 命令: rabbitmq-service.bat install
启动rabbitmq-service服务 命令: rabbitmq-service.bat start
4.查看默认用户 rabbitmqctl.bat list_users 看到只有一个系统默认用户 guest
5.登录rabbitmq管理首页 localhost:15672 ,默认账户密码, guest
6.选择 tags -->admin 添加一个我们的测试账户.
用户名,密码暂定为springcloud. tags设置为administrator(最大权限).
点击旁边的?可以查看有这几个分类的详细说明.我这里简单的说下.
①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即可.
设置完后如下图所示
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.启动 启动类,然后调用我们的发送者,就会出现如下内容.
可以看到发送者发送的消息和接收者收到的消息.
12.to be continued.