RabbitMq简介

###消息中间件
####1、什么是消息中间件?
  消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成
  当下主流的消息中间件有RabbitMq、ActiveMq、Kafka、RocketMq等,其能在不同平台间进行通信,常用来屏蔽各种平台协议之间的特性,实现应用程序之间的协同。
  其优点在于能够在客户端和服务端之间进行同步和异步的连接,并且在任何时刻都可以将消息进行传送和转发,是分布式系统中非常重要的组件,主要用来解决应用的耦合、异步通信、流量削峰等问题。
####2、RabbitMq介绍
1)RabbitMq
  RabbitMq是使用erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP协议的主要特征是面向消息、队列、路由(包括P2P和Pub/Sub模式)、可靠性、安全;AMQP协议更多用在企业系统内对数据一致性、稳定性和可靠性要求很高的场景,其次是性能和吞吐量。
2)RabbitMq的特点

  • 可靠性
  • 灵活的路由
  • 扩展性
  • 高可用性
  • 多种协议
  • 多语言客户端
  • 管理界面
  • 插件机制

3)RabbitMq概念简介
RabbitMq整体上来看是一个典型的生产者消费者模型,主要负责接收、存储和转发消息。

  • **Broker:**简单的来说就是消息队列服务器实体。
  • **Exchange:**消息交换机
  • **Queue:**消息队列载体,每个消息都会被投入到一个或多个队列。
  • **Binding:**绑定,它的作用就是把Exchange和Queue按照路由规则绑定起来。
  • **Routing Key:**路由关键字,Exchange根据这个关键字进行消息投递。
  • **vhost:**虚拟主机,一个Broker里可以开设多个vhost,用作不同用户的权限分离。
  • **producer:**消息生产者,就是投递消息的程序。
  • **consumer:**消息消费者,就是接收消息的程序。
  • **channel:**消息通道,在客户端的每个连接里,,可建立多个channel,每个channel代表一个会话任务。

4)RabbitMq使用流程
  AMQP模型中,消息在producer中产生,发送到Mq的Exchange上,Exchange根据配置的路由方式发到想用的Queue上,Queue又将消息发送给consumer,消息从Queue到consumer有push和pull两种方式。消息队列的使用过程大概如下:
1、客户端连接到消息队列服务器,打开一个channel;
2、客户端声明一个Exchange,并设置相关属性;
3、客户端生命一个Queue,并设置相关属性;
4、客户端使用Routing Key,在Exchange和Queue之间建立好绑定关系;
5、客户端投递消息到Exchange。
Exchange接收到消息后,就根据消息的Key和已经设置好的Binding进行消息路由,将消息投递到一个或者多个队列里,Exchange也有几个类型,完全根据Key进行投递的叫做Direct交换机,例如:绑定时设置了Routing Key 为“abc”,那么客户端提交的消息,只有设置了Key为“abc”的才会投递到队列。

####3、RabbitMq使用命令:

rabbitmq-plugins list                                      ---- 查看安装的插件 
rabbitmq-server -detached                                  ---- 启动RabbitMQ节点 
rabbitmqctl start_app                                      ---- 启动RabbitMQ应用,而不是节点 
rabbitmqctl stop_app                                       ---- 停止 
rabbitmqctl status                                         ---- 查看状态 
rabbitmqctl add_user mq 123456                             ---- 设置用户和密码 
rabbitmqctl set_user_tags mq administrator                 ---- 新增账户并设置为管理员 
rabbitmq-plugins enable rabbitmq_management                ---- 启用RabbitMQ_Management 
rabbitmqctl cluster_status                                 ---- 集群状态 
rabbitmqctl forget_cluster_node rabbit@rabbit3             ---- 节点摘除 
rabbitmqctl reset application                              ---- 重置 
rabbitmqctl set_permissions -p "/" soso  ".*" ".*" ".*"    ---- 授权 
----------------------------------------------------------------------------------------- 
查看Connection,Queue,Channel,User   
rabbitmqctl list_connections   
rabbitmqctl list_queues   
rabbitmqctl list_channels   
rabbitmqctl list_users 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值