RabbitMQ安装

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

1.安装rabbitmq所需要的依赖包

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

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.rpm

3.安装服务命令

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

$ 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相关的使用。

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


java架构之路-(MQ专题)RabbitMQ安装和基本使用的更多相关文章

  1. [转帖]java架构之路-(面试篇)JVM虚拟机面试大全

    java架构之路-(面试篇)JVM虚拟机面试大全 https://www.cnblogs.com/cxiaocai/p/11634918.html   下文连接比较多啊,都是我过整理的博客,很多答案都 ...

  2. java架构之路-(MQ专题)RocketMQ从入坑到集群详解

    这次我们来说说我们的RocketMQ的安装和参数配置,先来看一下我们RocketMQ的提出和应用场景吧. 早在2009年,阿里巴巴的淘宝第一次提出了双11购物狂欢节,但是在2009年,服务器无法承受到 ...

  3. java架构之路(MQ专题)kafka集群配置和简单使用

    前面我们说了RabbitMQ和RocketMQ的安装和简单的使用,这次我们说一下Kafka的安装配置,后面我会用几个真实案例来说一下MQ的真实使用场景.天冷了,不愿意伸手,最近没怎么写博客了,还请见谅 ...

  4. java架构之路-(Redis专题)Redis的主从、哨兵和集群

    我们使用的redis,单机的绝对做不到高可用的,万一单机的redis宕机了,就没有备用的了,我们可以采用集群的方式来保证我们的高可用操作. 主从架构 大致就是这样的,一个主节点,两个从节点(一般两个就 ...

  5. java架构之路-(Redis专题)SpringBoot连接Redis超简单

    上次我们搭建了Redis的主从架构,哨兵架构以及我们的集群架构,但是我们一直还未投入到实战中去,这次我们用jedis和springboot两种方式来操作一下我们的redis 主从架构 如何配置我上次已 ...

  6. java架构之路-(微服务专题)初步认识微服务与nacos初步搭建

    历史演变: 以前我们都是一个war包,包含了很多很多的代码,反正我开始工作的时候做的就是这样的项目,一个金融系统,代码具体多少行记不清楚了,内部功能超多,但是实际能用到的不多,代码冗余超大,每次部署大 ...

  7. java架构之路-(分布式)初识zookeeper安装与参数详解

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...

  8. java架构之路-(Redis专题)聊聊大厂那些redis

    上几次说了redis的主从,哨兵,集群配置,但是内部的选举一直没说,先来简单说一下选举吧. 集群选举 redis cluster节点间采取gossip协议进行通信,也就是说,在每一个节点间,无论主节点 ...

  9. java架构之路-(Redis专题)redis面试助力满分+

    1.Redis支持的数据类型? 答:五种,在第一节redis相关的博客我就说过,String,Hash,List,Set,zSet,也就是我们的字符串,哈希,列表,集合,有序集合五种.结构图如下. 2 ...

随机推荐

  1. 无法将类型为“System.Xml.XmlComment”的对象强制转换为类型“System.Xml.XmlElement”

    今天开发C#项目时,有一个需要读取XML的功能点.编码过程中遇到了如标题所示的异常,如下图所示: 查询官网后得知XmlComment是注释节点的类型,如下图所示: 于是得出结论,使用XmlDocume ...

  2. Tomcat启动报错java.lang.ClassNotFoundException: javax.el.ExpressionFactory

    严重: Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error crea ...

  3. 基于操作系统原理的Webmin管理工具的安装使用

    一.实验目的 1.了解Webmin管理工具的功能. 2.掌握Webmin的安装. 3.掌握Webmin管理工具的使用 二.实验内容 1.下载Webmin安装包. 2.在Linux主机中安装Webmin ...

  4. Spring 梳理-数据访问-DB

    针对接口编程 DAO是指数据访问对象(data access object),它提供了数据读取和写入到数据库中的一种方式.Spring认为,它应该以接口的方式发布功能,而应用程序的其他部分需要通过接口 ...

  5. Python 设计和历史的 27 个问题

    花下猫语: 先祝大家假期快乐!今天,我要分享一篇长文,选自 Python 的官方文档.它列举了 27 个设计及历史的问题,其中有些问题我曾经分享过,例如为什么使用显式的 self.浮点数的问题.len ...

  6. 3. Git与TortoiseGit基本操作

    1. GitHub操作 本节先简单介绍 git 的使用与操作, 然后再介绍 TortoiseGit 的使用与操作. 先看看SVN的操作吧, 最常见的是 检出(Check out ...), 更新 (U ...

  7. 30 分钟快速入门 Docker 教程

    原文地址:梁桂钊的博客 博客地址:http://blog.720ui.com 欢迎关注公众号:「服务端思维」.一群同频者,一起成长,一起精进,打破认知的局限性. 一.欢迎来到 Docker 世界 1. ...

  8. charles抓包小程序

    charles抓包小程序: 原理呢,简单理解,通过charles开代理,然后手工wifi设置代理上网. 但是要做一些准备:手机要安装charles 证书. 注意的是安卓和ios有区别:目前安卓7.0版 ...

  9. Spring系列(六):Spring事务源码解析

    一.事务概述 1.1 什么是事务 事务是一组原子性的SQL查询,或者说是一个独立的工作单元.要么全部执行,要么全部不执行. 1.2 事务的特性(ACID) ①原子性(atomicity) 一个事务必须 ...

  10. 02-17 kd树

    目录 kd树 一.kd树学习目标 二.kd树引入 三.kd树详解 3.1 构造kd树 3.1.1 示例 3.2 kd树搜索 3.2.1 示例 四.kd树流程 4.1 输入 4.2 输出 4.3 流程 ...