java架构之路-(MQ专题)RabbitMQ安装和基本使用

RabbitMQ安装java

  我这里安装是使用阿里云的CentOS7.5来安装的,使用CentOS版本低于7的可能会报错。c++

1.安装rabbitmq所须要的依赖包vim

输入$ yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc- c++ kernel-devel m4 ncurses-devel tk tc xzcentos

 2.下载安装包 浏览器

$ wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm服务器

$ wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm网络

$ wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpmapp

 

 3.安装服务命令 oop

#第一步:安装erlang语言环境ui

$ rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm

#第二步:安装socat加解密软件

$ rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm

#第三步:最后安装rabbitmq

$ rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm

  

4.修改配置文件

#第一步:查找rabbit.app,并编辑改文件

 修改:loopback_users 中的 <<"guest">>,只保留guest(不修改只能经过localhost访问) 

 #第二步,修改rabbitmq-env.conf文件

vim /etc/rabbitmq/rabbitmq-env.conf 

添加NODENAME=rabbit 

5.安装插件,保证浏览器能够访问

rabbitmq-plugins enable rabbitmq_management 

6.启动服务

rabbitmq-server start &

rabbitmqctl start_app

 打开浏览器,输入咱们的地址加端口15672,就能够看到咱们的页面了,帐号密码都是guest,登陆进来是这样的。

 

  说了这么多,还没说这个玩意是作什么的呢~!我第一次接触这个我也懵,彻底不懂得是作什么的,咱们先来看一下他能作什么吧。

  RabbitMQ(暂不说实际场景,后面说场景,如今说场景怕本身给本身说懵圈了)主要是传递消息,就是什么意思呢,看个图。

  简单来讲就是这样的,经过咱们的RabbitMQ将咱们的数据发送到其它的服务器上去,让服务器获得咱们的消息,有人会问为何不直接传递,也能够直接传递,可是服务器达到必定数量,你是维护起来成本很高的,并且还须要可靠性的投递呢?代码实现起来是复杂的。

  咱们再来打开黑色的盒子看一下里面的东西。

咱们来讲几个名词,有图了更容易理解和记忆

1:server :又称为broker,接受客户端链接,实现amqp实体服务

2:exchange 交换机: 消息直接投递到交换机上,而后交换机根据消息的路由key 来路由到对应绑定的队列上

3:baingding: 绑定 exchange 与queue的虚拟链接,bingding中能够包含route_key

4:route_key 路由key ,他的做用是在交换机上经过route_key来把消息路由到哪一个队列上

5:queue:队列,用于来保存消息的载体,有消费者监听,而后消费消息 

  就是咱们的数据服务A经过网络通道,到达exchange交换机,经过路由route_key来把消息发送到哪一个队列上,提供给咱们的下游服务使用,左面的叫上游服务,右面的叫下游服务。

交换机exchange

  这里还得继续说点枯燥的理论,交换机分为三种,直接交换机,扇形交换机和咱们的Topic交换机,也叫作话题交换机。来举三个栗子。

直接交换机:

就是说,携带咱们的routing Key经过咱们的路由匹配到咱们的routing Key就能到达咱们的的Queue队列下,接收到咱们发送过来的消息。

扇形交换机

   经过咱们的交换机,只要订阅了咱们的交换机Exchange,就能够收到咱们的消息。

Topic交换机

  须要匹配咱们的routing Key,这里的匹配模式有两种,*和#,*表示值匹配一层,一层就是..之间就叫作一层,好比啊,top.xiaocai.java,这时咱们匹配top.xiaocai.*便可匹配到,而咱们匹配top.*则不可匹配。再就是咱们的#是全匹配,仍是top.xiaocai.java的例子,这时咱们匹配top.xiaocai.#便可匹配到,而咱们匹配top.#也可匹配到。咱们来看一个图

 就是一个匹配的规则,其实不难的。

 命令行

   咱们再来看几个命令行的使用

查看用户列表rabbitmqctl list_users,便可获得咱们的用户列表了,前面是用户名,括号内的是用户对应的角色。

 输入rabbitmqctl add_user xiaocaijava 123456,添加咱们的新用户,前面xiaocaijava是用户名,123456是密码。

 设置rabbitmq用户的角色 rabbitmqctl set_user_tags xiaocaijava administrator 

 

 输入rabbitmqctl delete_user xiaocaijava,便可删除咱们的用户,注意别把guest用户删了,否则会很麻烦。

 后面的我就大概说一下,不是很重要,会用便可。

为用户设置权限: rabbitmqctl set_permissions -p <虚拟机> <用户名> ".*" ".*" ".*" 

列出用户权限: rabbitmqctl list_user_permissions xiaocai

清除用户权限 rabbitmqctl clear_permissions -p <虚拟机> <用户名> 

修改用户密码 rabbitmqctl change_password 用户名 新密码 

虚拟主机操做

rabbitmqctl add_vhost /cloudmall 增长一个虚拟主机

rabbitmqctl list_vhosts; 查看全部的虚拟主机

rabbitmqctl list_permissions -p /cloudmall查看虚拟主机的权限

rabbitmqctl delete_vhost /cloudmall 删除虚拟主机 

操做队列命令

rabbitmqctl list_queues 查询全部队列

rabbitmqctl -p vhostpath purge_queue blue 清除队列消息 

  今天只是简单了解一下咱们的RabbitMQ,后面会详细的去说RabbitMQ的做用和java相关的使用。

 

最进弄了一个公众号,小菜技术,欢迎你们的加入

 

相关文章
相关标签/搜索