1. RabbitMQ 的介绍
➢ 什么是 MQ?
MQ 全称为 Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。
➢ 要解决什么样的问题?
在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。

2. RabbitMQ 安装与使用
安装 RabbitMQ
1. 安装 Linux 以及必要的依赖包(Centos7)

1.准备
Linux系统的一些基本工具(安装简洁版Linux需要安装这些工具)
yum install lrzsz wget vim unzip net-tools -y
安装RabbitMQ所需要的依赖包
yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto
2.下载安装包

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.2/rabbitmq-server-3.7.2-1.el7.noarch.rpm
wget http://erlang.org/download/otp_src_19.3.tar.gz

2. 下载 RabbitMQ 的安装包

3.安装RabbitMQ
解压erlang 源码包
tar -zxvf otp_src_19.2.tar.gz(应该用这个tar -xvf otp_src_19.3.tar.tar 最终测应使用tar -vxf memcached-1.4.34.tar.gz)
手动创建erlang 的安装目录
mkdir /usr/local/erlang
进入erlang的解压目录
cd otp_src_19.3
配置erlang的安装信息
./configure --prefix=/usr/local/erlang --without-javac
编译并安装
make && make install
配置环境变量
vim /etc/profile
将这些配置填写到profile文件的最后
ERL_HOME=/usr/local/erlang
PATH=$ERL_HOME/bin:$PATH
export ERL_HOME PATH
启动环境变量配置文件
source /etc/profile
安装RabbitMQ
rpm -ivh --nodeps rabbitmq-server-3.7.2-1.el7.noarch.rpm

4.服务启动 rabbitmq-server start
这里可能会出现错误,错误原因是/var/lib/rabbitmq/.erlang.cookie文件不够
解决方案
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie

启动之后界面:

3. 安装,修改相关配置

查看启动进程:
ps -ef | grep rabbit
5.使用浏览器登录RabbitMQ的管理平台:http://RabbitMQ服务器IP:15672
RabbitMQ默认情况无法直接访问管理平台
解决方案
添加管理台的插件(用于Web浏览器管理RabbitMQ)
rabbitmq-plugins enable rabbitmq_management 使用默认用户名guest登录
账号:guest
密码:guest
注意:这里guest只允许本机登录访问需要创建用户并授权远程访问命令如下 rabbitmqctl add_user root root
rabbitmqctl set_user_tags root administrator
rabbitmqctl set_permissions -p / root '.*' '.*' '.*'

打开浏览器,输入http://RabbitMQ服务器IP:15672

如果你能正常启动,却打不开RabbitMQ的管理平台,请检查防火墙是否关闭,centos7关防火墙:

centos从7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。所以你只要停止firewalld服务即可:

sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

1-4 RabbitMQ 核心概念

RabbitMQ 结构图

AMQP 核心概念
➢Server:又称 Broker 接收客户端的连接,实现 AMQP 实体服务
➢ Connection:链接,用于应用程序链接到 Broker
➢ Channel:网络通道,Channel 是进行消息读写的一个通道每一个 Channel 都表示一个会话,有点类似我们之前的Session 概念
➢Message:消息,消息就是我们真正用来进行传输的数据,Message 由两部分组成,Properties 和 Body,Properties用于对消息就行修饰,比如优先级或是否持久等,Body则是消息数据的主体
➢ Virtual host:虚拟地址,用于进行逻辑隔离,一个 Server拥有过多个 Vitual hsot,一个 Virual hsot 会拥有多个Exchange(交换机)和 Queue(队列)
➢ Exchange:交换机,用于具体接收消息并将消息根据绑定路由 key 存入到指定的队列中
➢ Binding:绑定,就是将 Exchange 和 Queue 链接在一起,通过一个 Routing key 进行绑定
➢ Routing key:路由规则,消息发送到 Exchang 后会根据这个规则将消息存入对应的 Queue
➢ Queue:队列也称 Message Queue 简称 MQ,用于存放消息,并使用队列的结构先进先出、后进后出

RabbiMQ 执行流程

RabbitMQ(一)安装篇的更多相关文章

  1. Ubuntu 16.04 RabbitMq 安装与运行(安装篇)

    Ubuntu 16.04 RabbitMq 安装与运行(安装篇) 2018年08月15日 15:05:24 我跟吴彦祖四六开 阅读数:1966   前言 目前公司用阿里云 + redis 的方式实现的 ...

  2. rabbitmq学习(一) —— 安装篇

    安装篇之windows: 略(楼主在windows上安装基本就是按部就班的没遇到什么坑) 安装篇值centos7: 主要记录下centos7下的安装,因为在该系统下安装稍微折腾了下 参考https:/ ...

  3. rabbitMQ第一篇:rabbitMQ的安装和配置

    在Windows下进行rabbitMQ的安装 第一步:软件安装 如果安装rabbitMQ首先安装基于erlang语言支持的OTP软件,然后在下载rabbitMQ软件进行安装(安装过程都是下一步,在此不 ...

  4. 20190418 CentOS7实用技能综合:系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/RocketMQ/RabbitMQ编译安装 + ...各类常用生产环境软件的编译安装

    系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/Roc ...

  5. RabbitMq初探——安装

    rabbitmq Server安装 rabbitmq server安装很简单. 安装erlang环境 rpm -ihv erlang-18.1-1.el6.x86_64.rpm rpm -ihv ra ...

  6. RabbitMQ使用教程(一)RabbitMQ环境安装配置及Hello World示例

    你是否听说过或者使用过队列? 你是否听说过或者使用过消息队列? 你是否听说过或者使用过RabbitMQ? 提到这几个词,用过的人,也许觉得很简单,没用过的人,也许觉得很复杂,至少在我没使用消息队列之前 ...

  7. RabbitMQ Server安装及显示管理界面Installing on Windows

    接上一篇文章,继续讲解 文件很小, 1.下载路径:http://www.rabbitmq.com/download.html 2.运行rabbitmq-server-3.6.5.exe,选择要安装的目 ...

  8. 中间件系列一 RabbitMQ之安装和Hello World Demo

    https://blog.csdn.net/hry2015/article/details/79016854 1. 概述 RabbitMQ是一个由erlang开发的AMQP(Advanced Mess ...

  9. RabbitMQ服务安装配置

    RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发.RabbitMQ据说具有良 ...

随机推荐

  1. HihoCoder-1870 Jin Yong’s Wukong Ranking List(并查集)

    我发现大佬好像都是用拓扑排序写的(本菜鸡不会拓扑哭唧唧 说一下并查集的做法吧... 就是找两人右边的(辣鸡的那个人)那个是否比左边厉害,厉害的话就矛盾. 如果他俩没比较过就把厉害的并到辣鸡的. (辣鸡 ...

  2. poj 1511-- Invitation Cards (dijkstra+优先队列)

    刚开始想复杂了,一直做不出来,,,其实就是两遍dijkstra+优先队列(其实就是板子题,只要能有个好的板子,剩下的都不是事),做出来感觉好简单...... 题意:有n个车站和n个志愿者,早上每个志愿 ...

  3. Educational Codeforces Round 91 (Rated for Div. 2) C. Create The Teams (模拟)

    题意:有\(n\)个队员,每个队友都有一个能力值,构造队伍,要求队伍人数*队伍中最低能力值不小于\(x\),求能构造的最大队伍数. 题解:大水题,排个序,倒着模拟就行了. 代码: int t; int ...

  4. C# 替换文件名的字符

    https://www.cnblogs.com/lindexi/p/8970466.html

  5. Win7下安装IIS

    安装IIS 1.控制面板 --> 程序 --> 卸载程序,进入"程序与功能". 2.进入"打开或关闭Window功能". 3.找到"Int ...

  6. codeforces 1000C - Covered Points Count 【差分】

    题目:戳这里 题意:给出n个线段,问被1~n个线段覆盖的点分别有多少. 解题思路: 这题很容易想到排序后维护每个端点被覆盖的线段数,关键是端点值不好处理.比较好的做法是用差分的思想,把闭区间的线段改为 ...

  7. Codeforces 11D A Simple Task 统计简单无向图中环的个数(非原创)

    太难了,学不会.看了两天都会背了,但是感觉题目稍微变下就不会了.dp还是摸不到路子. 附ac代码: 1 #include<iostream> 2 #include<cstdio> ...

  8. codeforce 849A

    A. Odds and Ends time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  9. 云原生系列1 pod基础

    POD解决了什么问题? 成组资源调度问题的解决. mesos采用的资源囤积策略容易出现死锁和调度效率低下问题:google采用的乐观调度技术难度非常大: 而k8s使用pod优雅的解决了这个问题. po ...

  10. 属于我的md5sum程序

    目录 前言 介绍 使用说明 总结 前言 之所以想做这个软件是因为一直在使用的http://keir.net/hash.html软件有很多功能不能满足. 经过自学C#,研究多线程,异步更新UI,等等知识 ...