首页 > 其他分享 >What is RabbitMQ?-动力节点RabbitMQ章节笔记

What is RabbitMQ?-动力节点RabbitMQ章节笔记

时间:2023-04-26 16:37:07浏览次数:47  
标签:章节 What -- 用户 rabbitmq rabbitmqctl RabbitMQ 安装

1. What is RabbitMQ?

1.1简介

RabbitMQ是一个广泛使用的消息服务器,采用Erlang语言编写,是一种开源的实现 AMQP(高级消息队列协议)的消息中间件; RabbitMQ最初起源于金融系统,它的性能及稳定性都非常出色; AMQP协议(http://www.amqp.org),即 Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计; 我们学的协议有哪些:(http、ftp)

1.2 相关网址

| 官网:https://www.rabbitmq.com

Github:https://github.com/rabbitmq

1.3 消息中间件(MQ=Message Queue)

简单来说,消息中间件就是指保存数据的一个容器(服务器),可以用于两个系统之间的数据传递。 消息中间件一般有三个主要角色:生产者、消费者、消息代理(消息队列、消息服务器);   rabbitmq-java-client      rabbitmq-server          rabbitmq-java-client 生产者发送消息到消息服务器,然后消费者从消息代理(消息队列)中获取数据并进行处理;

1.4 常用的消息中间件

目前比较主流的几个消息中间件:

|

  •   RabbitMQ
  •   kafka(大数据领域)
  •  RocketMQ(阿里巴巴开源)献给Apache组织
  •   pulsar(最近一两年流行起来的) | | --- |

 

2. MQ(Message Queue)的应用场景

2.1 异步处理

下订单:下订单--》加积分--》发红包--》发手机短信

下订单---向MQ 发消息--》积分系统,红包系统,手机短信系统接收消息 同步是阻塞的(会造成等待),异步是非阻塞的(不会等待); 大流量高并发请求、批量数据传递,就可以采用异步处理,提升系统吞吐量;

2.2系统解耦

多个系统之间,不需要直接交互,通过消息进行业务流转;

2.3 流量削峰

高负载请求/任务的缓冲处理;

2.4日志处理

主要是用kafka这个服务器来做; 日志处理是指将消息队列用于在日志处理中,比如Kafka解决大量日志传输的问题; loger.info(.....) ELK 日志处理解决方案: loger.error(.....) -->logstash收集消息--> 发送消息的kafka --> elastic search (es) -->Kibana ELK日志处理平台

3. RabbitMQ运行环境搭建

RabbitMQ是使用Erlang语言开发的,所以要先下载安装Erlang

3.1 Erlang及RabbitMQ安装版本的选择

下载时一定要注意版本兼容性 版本兼容说明地址:https://www.rabbitmq.com/which-erlang.html 我们选择的版本

3.2下载Erlang

Erlang官网

https://www.erlang.org/

Linux下载:

wget https://github.com/erlang/otp/releases/download/OTP-25.1.1/otp_src_25.1.1.tar.gz

说明:wget 是linux命令,可以用来下载软件

3.3 安装Erlang

3.3.1 安装erlang前先安装Linux依赖库

yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel

  说明:yum -y install  安装linux的一些依赖库的命令 ,-y表示自动确认;

3.3.2 解压erlang压缩包文件

tar -zxvf otp_src_25.1.1.tar.gz

3.3.3 配置

切换到解压的目录下,运行相应命令

| cd otp_src_25.1.1

./configure

3.3.4 编译

make

3.3.5安装

make install

安装好了erlang后可以将解压的文件夹删除:

rm -rf otp_src_25.1.1

 

3.3.6 验证erlang是否安装成功

在命令行输入: erl 如果进入了编程命令行则表示安装成功,然后按ctrl + z 退出编程命令行;  

3.4 下载RabbitMQ

从RabbitMQ官网https://www.rabbitmq.com找到下载链接 Linux:下载3.10.11

| wget

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.10.11/rabbitmq-server-generic-unix-3.10.11.tar.xz

generic 是通用的意思,这个版本也就是通用的unix版本

3.5 安装RabbitMQ

解压RabbitMQ的压缩包,即安装完成,无需再编译

tar -xvf rabbitmq-server-generic-unix-3.10.11.tar.xz  -C  /usr/local/

说明 -C 选项是指定解压目录,如果不指定会解压到当前目录 此时rabbitmq就安装好了;

4. 启动及停止RabbitMQ

4.1启动RabbitMQ

切换到安装目录的sbin目录下:

| #启动

./rabbitmq-server  -detached

说明: -detached 将表示在后台启动运行rabbitmq;不加该参数表示前台启动; rabbitmq的运行日志存放在安装目录的var目录下; 现在的目录是:/usr/local/rabbitmq_server-3.10.11/var/log/rabbitmq

4.2 查看RabbitMQ的状态

切换到sbin目录下执行:

./rabbitmqctl -n rabbit status

 说明:-n rabbit 是指定节点名称为rabbit,目前只有一个节点,节点名默认为rabbit  此处-n rabbit 也可以省略

4.3 停止RabbitMQ

切换到sbin目录下执行:

./rabbitmqctl shutdown

4.4 配置path环境变量

vi /etc/profile

| RABBIT_HOME=/usr/local/rabbitmq_server-3.10.11 PATH=$PATH:$RABBIT_HOME/sbin  

export RABBIT_HOME PATH

刷新环境变量,命令如下

source /etc/profile

5. RabbitMQ管理命令

./rabbitmqctl  是一个管理命令,可以管理rabbitmq的很多操作。 ./rabbitmqctl help可以查看一下有哪些操作 查看具体子命令 可以使用 ./rabbitmqctl help 子命令名称

5.1 用户管理

用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。 这些操作都是通过rabbitmqctl管理命令来实现完成。 查看帮助:

rabbitmqctl add_user --help

相应的命令 (1) 查看当前用户列表

rabbitmqctl list_users

(2) 新增一个用户

| 语法:rabbitmqctl add_user Username  Password

示例: rabbitmqctl add_user admin 123456

 

5.2 设置用户角色

| rabbitmqctl set_user_tags  User  Tag

示例:rabbitmqctl set_user_tags  admin administrator

说明:此处设置用户的角色为管理员角色

5.3 设置用户权限

rabbitmqctl set_permissions -p / admin "." "." ".*"

说明:此操作是设置admin用户拥有操作虚拟主机/下的所有权限 查看用户权限

./rabbitmqctl list_permissions

6. web管理后台

Rabbitmq有一个web管理后台,这个管理后台是以插件的方式提供的,启动后台web管理功能,切换到sbin目录下执行:

6.1 启用管理后台

| # 查看rabbitmq 的插件列表 ./rabbitmq-plugins list #启用 ./rabbitmq-plugins enable rabbitmq_management #禁用

./rabbitmq-plugins disable rabbitmq_management

6.2防火墙操作

| systemctl status firewalld --检查防火墙状态 systemctl stop firewalld --关闭防火墙,Linux重启之后会失效

systemctl disable firewalld --防火墙置为不可用,Linux重启后,防火墙服务不自动启动,依然是不可用

6.3 访问

| http://192.168.131.131:15672 用户名/密码为我们上面创建的admin/123456

注意上面改成你的虚拟主机的ip地址

备注:如果使用默认用户guest、密码guest登录,会提示User can only log in via localhost 说明guest用户只能从localhost本机登录,所以不要使用该用户。

6.4 通过web页面新建虚拟主机

建完后如下

标签:章节,What,--,用户,rabbitmq,rabbitmqctl,RabbitMQ,安装
From: https://blog.51cto.com/u_16033692/6228127

相关文章

  • 动力节点最新RabbitMQ笔记——1-6章What is RabbitMQ?
    1. WhatisRabbitMQ?1.1简介RabbitMQ是一个广泛使用的消息服务器,采用Erlang语言编写,是一种开源的实现 AMQP(高级消息队列协议)的消息中间件;RabbitMQ最初起源于金融系统,它的性能及稳定性都非常出色;AMQP协议(http://www.amqp.org),即 AdvancedMessageQueuingProtocol,高级消息队......
  • rabbitMQ镜像模式搭建
    一、环境 配置hosts解析192.168.1.135rabbit-master01192.168.1.136rabbit-master02192.168.1.137rabbit-master03关闭防火墙或者配置相关端口二、安装yum源及rabbitmq在所有机器上curl-shttps://packagecloud.io/install/repositories/rabbitmq/erlang/script.r......
  • 如何解决RabbitMQ消息积压
    如果你在你简历上写上了熟悉RabbitMQ,那么你在面试时很有可能会被问到,如何解决MQ消息积压?要想将此问题回答完美,一定要多方面考虑。首先,我们要搞清楚是什么原因导致的消息积压。我列举了以下三种:1)流量变大,而RabbitMQ服务器配置偏低,导致消息产生速度大于消费速度;2)消费者故障,从而消......
  • what is already installed?
    AndroidDDMS 10.0.0.v201102162101-104271 com.android.ide.eclipse.ddms.feature.groupAndroidDevelopmentTools 10.0.0.v201102162101-104271 com.android.ide.eclipse.adt.feature.groupAndroidHierarchyViewer 10.0.0.v201102162101-104271 com.android.ide.ec......
  • rabbitmq消费者--消息订阅时的权衡
    消息的获得方式pull拉取属于一种轮询模型,发送一次get请求,获得一个消息。如果此时RabbitMQ中没有消息,会获得一个表示空的回复。总的来说,这种方式性能比较差,很明显,每获得一条消息,都要和RabbitMQ进行网络通信发出请求。而且对RabbitMQ来说,RabbitMQ无法进行任何优化,因为它永远不知道应......
  • RabbitMQ、RocketMQ、Kafka性能对比分析
    MQ的作用MQ的作用是解耦、异步、削峰填谷。未使用MQ的情况MySql并发写大部分情况下维持在600-800之间,并发读1200-1500之间,所以消费端在消费消息的时候需控制在并发小于1000,从而达到限流的效果。使用MQ的情况MQ做个缓冲,消息放到磁盘,几个G或上T都可以存储,消息丢失......
  • docker安装rabbitMq
    rabbitMQ是一款开源的高性能消息中间件,最近项目要使用,于是使用docker搭建,快速方便一、获取镜像使用dockerpulldocker.io/rabbitmq:3.8-management 拉取镜像我们选择了STARS数最多的官方镜像,此处需要注意,默认rabbitmq镜像是不带web端管理插件的,所以指定了镜像tag为3.8-manage......
  • What...MiniGPT-4居然开源了,提前感受 GPT-4 的图像对话能力!
    说在前面的话:一个月前,OpenAI向外界展示了GPT-4如何通过手绘草图直接生成网站,令当时的观众瞠目结舌。在GPT-4发布会之后,相信大家对ChatGPT的对话能力已有所了解。圈内的朋友们应该已经亲身体验过无论是文本生成、编写代码,还是上下文关联对话能力,这些功能都一次又一次地震撼着我们。......
  • What...MiniGPT-4居然开源了,提前感受 GPT-4 的图像对话能力!
    说在前面的话:一个月前,OpenAI向外界展示了GPT-4如何通过手绘草图直接生成网站,令当时的观众瞠目结舌。在GPT-4发布会之后,相信大家对ChatGPT的对话能力已有所了解。圈内的朋友们应该已经亲身体验过无论是文本生成、编写代码,还是上下文关联对话能力,这些功能都一次又一次地震撼着我们......
  • CentOS7.9 安装 RabbitMQ
    官方安装文档https://www.rabbitmq.com/install-rpm.html一、rpm包下载1.下载erlanghttps://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4.11-1.el7.x86_64.rpm?distro_version_id=140wget--content-disposition"https://packagecloud.io/rabbitmq/erl......