安装rabbitmq 设置用户_RabbitMQ的安装和使用

前言

相信进来的同学之前或多或少都知道一点rabbitmq

本篇博客的意图就是教会大家如何去安装,以及如何在spring下使用rabbitmq

基本概念

来了解下RabbitMQ的成员组件:

broker:消息队列服务器的实体,是一个中间件应用,负责接收生产者的消息,然后将消息发送到消息接受者或者其他broker

exchange:消息交换机,是消息到达的第一个地方,消息通过它指定的路由规则,分发到不同的消息队列中

queue:消息队列,消息通过发送和路由之后最后到达的地方,到达queue的消息即进入逻辑上的等待消费状态。每个消息都会被发送到一个或者多个队列

binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来,也就是exchange和queue之间的虚拟连接

virtual host:虚拟主机,他是对broker的虚拟划分,将消费者、生产者和他们依赖的AMQP相关结构进行隔离,一般都是为了安全考虑,比如我们在一个broker中设置多个虚拟主机,对不同用户进行权限的分离

routing key:路由关键字,exchange根据这个关键字进行消息的投递

connection:连接,代表生产者、消费者、broker之间进行通信的物理网络

channel:消息通道,用于连接生产者和消费者的逻辑结构。在客户端的每个链接里,可可建立多个channel,每个channel代表一个会话任务,通过channel可以隔离连接中的不同交互内容

看下客户端使用rabbitmq的基本流程:

1.消费者连接到消息队列服务器,打开一个channel

2.消费者声明一个exchange,并设置相关属性

3.消费者声明一个queue,并设置相关属性

4.消费者使用routing key,在exchange和queue之间建立绑定

5.生产者投递消息到exchange

6.exchange接收到消息后,根据消息的key和已经设置好的binding,进行消息路由,将消息投递到一个或者多个queue里

安装

rabbitmq是基于erlang实现的,所以在安装rabbitmq之前需要安装erlang

以下都是在centos上进行

博主的erlang版本:erlang-19.0.4-1.el6.x86_64

rabbitmq版本:rabbitmq-server-3.6.10-1.el6.noarch

erlang的安装:

去erlang下载页面下载自己的erlang版本

下载之后 tar zxvf 解压

cd到解压文件夹

执行./configure --prefix=/erlang命令(保证在系统根目录下存在空erlang文件夹)

安装erlang:make && make install

修改系统环境变量etc/profile,记得source执行

rabbitmq的安装:

去rabbitmq下载页面下载自己的rabbitmq版本

编译且安装:

rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc

yum install rabbitmq-server-3.6.0-1.noarch.rpm

命令行使用

查看rabbitmq的安装目录:whereis rabbitmq

cd到rabbitmq根目录下的sbin文件夹下

后台开启rabbitmq:./rabbitmq-server start -detached

关闭:./rabbitmqctl stop

查看交换机、绑定、队列:

./rabbitmqctl list_exchanges

./rabbitmqctl list_bindings

./rabbitmqctl list_queues

用户管理:(以下操作生效需要重启rabbitmq)

新建用户:./rabbitmqctl add_user username password

删除用户:./rabbitmqctl delete_user username

改密码:./rabbimqctl change_password username newpassword

设置用户角色:./rabbitmqctl set_user_tags username tag

(Tag可以为 administrator,monitoring, management)

开启web管理界面:./rabbitmq-plugins enable rabbitmq_management

(在浏览器地址栏输入:http://127.0.0.1:15672进入)

结合Spring的项目开发

spring和rabbitmq早已整合

接下来博主带大家熟悉如何在spring下使用rabbitmq

首先加入maven依赖:

org.springframework.amqp

spring-rabbit

编写RabbitConfig类与rabbitmq进行连接:

@Configuration

public class RabbitConfig {

@Bean

public ConnectionFactory connectionFactory() {

CachingConnectionFactory connectionFactory = new CachingConnectionFactory("106.15.205.155");

connectionFactory.setUsername("guest");

connectionFactory.setPassword("guest");

connectionFactory.setPort(5672);

return connectionFactory;

}

}

rabbitmq有很多种模式,博主觉得最常用的还是直连交换机模式(Direct)

编写DirectExchangeConfig配置生成direct交换模式:

//direct直连模式的交换机配置

@Configuration

public class DirectExchangeConfig {

//直连交换机

@Bean

public DirectExchange directExchange(){

return new DirectExchange("direct");

}

//添加两个队列

@Bean

public Queue queue1(){

return new Queue("queue1");

}

@Bean

public Queue queue2(){

return new Queue("queue2");

}

//三个binding将交换机和队列绑定起来

@Bean

public Binding binding1(){

return BindingBuilder.bind(queue1()).to(directExchange()).with("key1");

}

@Bean

public Binding binding2(){

return BindingBuilder.bind(queue2()).to(directExchange()).with("key2");

}

@Bean

public Binding binding3(){

return BindingBuilder.bind(queue2()).to(directExchange()).with("key3");

}

}

编写一个消息发布者(Sender):

@Service("sender")

public class Sender {

@Autowired

RabbitTemplate rabbitTemplate;

//direct直连交换机模式

public void send(String routingKey,String message){

rabbitTemplate.convertAndSend("direct",routingKey,message); //第一个值是交换机名 第二个值是routingkey,第三个是内容

}

}

最后使用controller测试:

@RestController

public class RabbitmqController {

@Autowired

Sender sender;

@RequestMapping("/rabbitmq")

public String test(){

try {

sender.send("key1","Hello World!");

return "success";

}catch (Exception e){

return "error";

}

}

}

我们来看下运行结果:

进入rabbitmq的web管理器:

可以看到,我们的消息已经成功发送到了指定队列中

以上便是RabbitMQ的安装和基本使用,谢谢阅读!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值