Rabbitmq—centos7安装rabbitmq教程 以及 PHP开启rabbitmq扩展!
大家如果感兴趣,微信搜索「我是阿沐」关注我这枚有点神经但乐观的程序员。
希望小伙伴们通过阿沐的文章学习,知识存储量能有一点点的提升。
前言
当前文章大概是我两年前多(2018年上半年)在自己博客和简书等等社交平台发布的文章,目前准备同步到csdn这边,时间有点久远了有啥不足之处麻烦掘金的善良小伙伴指出不足之处!
之所以选择同步关于mq的几篇文章,主要是目前面试基本上都会涉及到消息队列kafka
、rabbitmq
、rocketmq
,那么当时也是在公司配合运维搭建mq的集群以及项目代码类php+swool+mq
的实现,消息量基本上亿级别,所以就搬迁这mq基础的知识文章。
好啦,开启mq之旅(后期应该会针对mq出一些实战场景的文章)!
Rabbitmq简介
server(broker):接受客户端连接,实现AMQP消息队列和路由功能的进程。
virtual host:其实是一个虚拟概念,类似于权限控制组,一个Virtual Host里面可以有若干个
exchange
和queue
,但是权限控制的最小粒度是Virtual Host。exchange:交换机,接受生产者发送的消息,并根据
binding
规则将消息路由给服务器中的队列。exchangeType决定了exchange路由消息的行为,例如,在RabbitMQ中,ExchangeType有header、direct、Fanout和Topic4种,不同类型的Exchange路由的行为是不一样的。message queue:消息队列,用于存储还未被消费者消费的消息。(支持储存模式
AMQP_DURABLE
,AMQP_PASSIVE
,AMQP_EXCLUSIVE
,AMQP_AUTODELETE
)message:由
header
和body
组成,header是由生产者添加的各种属性的集合,包括message是否被持久化、由哪个message 1ueue接受、优先级是多少等。而Body是真正需要传输的APP数据。binding:binding绑定了
exchange与message Queue关系
。exchange在与多个message queue发生Binding后会生成一张路由表,路由表中存储着message queue所需消息的限制条件即binding key
。当exchange收到message时会解析其header得到routing key,exchange根据routing key与exchange type将message路由到message queue。binding key由Consumer在binding exchange与message queue时指定,而routing key由Producer发送Message时指定,两者的匹配方式由exchange type决定。Connection:连接,对于RabbitMQ而言,其实就是一个位于客户端和Broker之间的
TCP连接
。Channel:信道或者频道,仅仅创建了客户端到broker之间的连接后,客户端还是不能发送消息的。需要为每一个connection创建channel,AMQP协议规定只有通过channel才能执行AMQP的命令。一个connection可以包含多个channel。之所以需要channel,是因为TCP连接的建立和释放都是十分昂贵的,如果一个客户端每一个线程都需要与broker交互,如果每一个线程都建立一个TCP连接,暂且不考虑TCP连接是否浪费,就算操作系统也无法承受每秒建立如此多的TCP连接。RabbitMQ建议客户端线程之间不要共用channel,至少要保证共用channel的线程发送消息必须是串行的,但是建议尽量共用connection。
Command:AMQP的命令,客户端通过Command完成与AMQP服务器的交互来实现自身的逻辑。例如在RabbitMQ中,客户端可以通过publish命令发送消息,txSelect开启一个事务,txCommit提交一个事务。
安装Erlang
服务器版本:centos7.2
IP地址:192.168.153.130
官方安装地址:http://www.rabbitmq.com/install-rpm.html
因为rabbitMQ是Erlang
语言编写的,所以我们首先需要安装Erlang
rpm -Uvh http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el7.centos.x86_64.rpm
或者
yum install erlang
安装rabbitMQ-server服务端并开启服务
官网提供的安装方式:
rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.ascyum install rabbitmq-server-3.7.8-1.el7.noarch.rpm或者yum install rabbitmq-server 一直输入Y即可查看rabbitmq-server是否已经安装好了,能查到说明已经安装完成了。rpm -qa|grep rabbitmq[root@test ~]# rpm -qa|grep rabbitmqrabbitmq-server-3.3.5-34.el7.noarch[root@test ~]#
开启rabbit-server: systemctl start rabbitmq-server
查看状态:rabbitmqctl status
注意:这样虽然我们已经将rabbitmq的服务正常启动了,但是我们在物理机的浏览器中输入192.168.153.130:15672时,并不能连接,因为我们还没有配置维护插件和开启远程连接。
rabbitmqctl 基础命令介绍
查看命令:#rabbitmqctl
[root@test ~]# rabbitmqctl
# rabbitmqctl list_queues
关闭应用
# rabbitmqctl stop_app启动应用,和上述关闭命令配合使用,达到清空队列的目的
# rabbitmqctl start_app清除所有队列
# rabbitmqctl reset更多用法及参数,可以执行如下命令查看
# rabbitmqctl
(1)首先关闭rabbitmq: rabbitmqctl stop_app
(2)还原: rabbitmqctl reset
(3)启动: rabbitmqctl start_app
(4)添加用户: rabbitmqctl add_user root root
(5)设置权限:rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
(6)查看用户: rabbitmqctl list_users
(7)删除用户:rabbitmqctl delete_user root
(8)修改密码:rabbitmqctl change_password root 123456
(9)清除密码:rabbitmqctl clear_password root
安装命令维护插件
执行此命令:rabbitmq-plugins enable rabbitmq_management
设置配置文件,并开启用户远程访问:
1、新建配置文件 /etc 会默认生成一个 rabbitmq
2、安装后rabbitmq默认命令在 /usr/lib/rabbitmq/bin
vi /etc/rabbitmq/rabbitmq.conf
#默认用户名
default_user = guest#默认密码
default_pass = guest#远程用户访问
loopback_users = none然后重启rabbitmq:
开启浏览器web端访问
1、浏览器输入:`192.168.153.130:15672 -- 默认端口是15672 可修改配置文件2、默认账号密码:账号:guest 密码:guest
登录成功以后,显示界面
PHP安装rabbitmq扩展需要安装rabbitmq-c
1、安装rabbitmq-c在安装amqp之前还需要安装另外一个通讯扩展rabbitmq-c去github下载最新版本的源码包并解压缩,https://github.com/alanxz/rabbitmq-c/releases
最新版本链接:https://github.com/alanxz/rabbitmq-c/releases/download/v0.8.0/rabbitmq-c-0.8.0.tar.gz
PS:今天上去一看没想到版本已更新到v0.11.0
Rabbitmq—centos7安装rabbitmq教程 以及 PHP开启rabbitmq扩展!相关推荐
- centos7 安装rtl8821ce教程
centos7 安装rtl8821ce教程 搜索到的教程都参差不齐,针对自己的安装经历自己写了一个,本人安装版本7.9 参考:Linux centos7升级内核(两种方法:内核编译和yum更新) ce ...
- 阿里云 Centos7 安装PostgreSQL教程
阿里云 Centos7 安装PostgreSQL教程 1.选择版本 2. 选择平台 3. 选择架构 4. 安装repository RPM 5. 安装客户端包 6. 可选的服务端安装包 7. 可选的初 ...
- php 安装rabbitmq拓展_【RabbitMQ】——centos7安装rabbitmq教程 以及 PHP开启rabbitmq扩展...
第一步:安装Erlang 因为rabbitMQ是Erlang语言编写的,所以我们首先需要安装Erlang rpm -Uvh http://www.rabbitmq.com/releases/erlan ...
- mqtt安装使用教程。(基于rabbitmq插件,docker部署,k8s部署,python教程)
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 Docker安装RabbitMQ配置MQTT 使用RabbitMQ作为MQTT服务端,Eclipse Paho作为客户端.宿主机系统为ubuntu16 ...
- centos7 安装 docker-ce 教程
centos7安装docker-ce 1.下载docker-ce离线安装包(rpm包) 到阿里云仓库下载:下载链接(阿里云) 或者使用我已经下载好的版本(docker-ce-18.03.1.ce-1. ...
- Centos7安装Redis教程
Centos7安装Redis 0.更新文件 yum update -y 这里会更新好多内容,需要等待一会. 1.下载redis [CSDN资源下载] https://redis.io/ 2.将压缩包放 ...
- 全网最简单 CentOS7 安装 EasyConnect 教程
目录 前言 一.安装图形化界面 1.更新组件 2 .获取 X Window System 接口 3.安装KDE 二.安装远程桌面 1.检查 2.安装xrdp (全部Y完事) 3.启动服务,开机启动 三 ...
- RabbitMQ Centos7 安装以及使用
1.Rabbit MQLinux 安装 Centos7 Yum安装socat # yum -y install socat 下载erlang软件包,本文使用erlang-19.0.4版本,下面给出下载 ...
- docker rabbitmq_使用Docker集成Rabbitmq与安装elasticsearch教程
今天为大家分享,使用Docker-集成Rabbitmq,使用Docker-安装elasticsearch,Docker容器的备份与迁移教学! 使用Docker-集成Rabbitmq 使用Docker- ...
- CentOS7安装Docker教程(图文)
文章目录 Docker 1. 检查是否支持docker 2. yum安装docker 3. 常用的一些docker命令 Docker Compose 1.Docker Compose介绍 2.Dock ...
最新文章
- epoll_data_t里面的void *ptr; int fd; u32; u64 分析
- Android中关于SQLite数据库的一些知识
- Linux-鸟菜-5-目录配置-FHS
- Kali Linux
- 提高数据中心空间使用率,助力数字新基建
- 一个链表创建、反转、打印的C语言代码
- Java_方法的调用①及案例
- IDEA设置取消自动显示参数提示
- (二分搜索)cable master
- office另存为pdf的加载项_pdf怎么转换成word?打工人必备的丛林法则
- ZZULIOJ 1055:兔子繁殖问题
- Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (1) - 特性概述
- 小度回应天猫精灵:不要因为我们拿了第一就黑我们
- Linux环境运行Jmeter
- python3 表情符号编码
- Android 官方命令深入分析之android
- 『软件工程10』结构化系统分析:数据流图和字典案例分析
- Axure 画原型图
- 闭合曲线 网格坐标 matlab,MATLAB曲线绘制
- mysql 周平均值_SQL语句: 按周、月统计总值 和 平均值