【动力节点】rabbitmq-1-6章What is RabbitMQ?

这篇具有很好参考价值的文章主要介绍了【动力节点】rabbitmq-1-6章What is 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-1-6章What is RabbitMQ?
rabbitmq-java-client      rabbitmq-server          rabbitmq-java-client
生产者发送消息到消息服务器,然后消费者从消息代理(消息队列)中获取数据并进行处理;

1.4 常用的消息中间件

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

|

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

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

2.1 异步处理

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

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

2.2系统解耦

多个系统之间,不需要直接交互,通过消息进行业务流转;
【动力节点】rabbitmq-1-6章What is RabbitMQ?

2.3 流量削峰

高负载请求/任务的缓冲处理;
【动力节点】rabbitmq-1-6章What is RabbitMQ?

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
我们选择的版本
【动力节点】rabbitmq-1-6章What is RabbitMQ?

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= P A T H : 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页面新建虚拟主机

【动力节点】rabbitmq-1-6章What is RabbitMQ?
建完后如下
【动力节点】rabbitmq-1-6章What is RabbitMQ?文章来源地址https://www.toymoban.com/news/detail-428211.html

到了这里,关于【动力节点】rabbitmq-1-6章What is RabbitMQ?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 动力节点Rabbitmq-18-21章RabbitMQ集群与高可用

    RabbitMQ 的集群分两种模式,一种是默认集群模式,一种是镜像集群模式; 在RabbitMQ集群中所有的节点(一个节点就是一个RabbitMQ的broker服务器) 被归为两类:一类是磁盘节点,一类是内存节点; 磁盘节点会把集群的所有信息(比如交换机、绑定、队列等信息)持久化到磁盘中

    2024年02月01日
    浏览(53)
  • RabbitMQ笔记一7-11章RabbitMQ工作模型【动力节点】

    broker 相当于mysql服务器,virtual host相当于数据库(可以有多个数据库) queue相当于表,消息相当于记录。   消息队列有三个核心要素:  消息生产者 、 消息队列 、 消息消费者 ; 生产者(Producer):发送消息的应用;(java程序,也可能是别的语言写的程序) 消费者(Con

    2023年04月26日
    浏览(38)
  • RabbitMQ-消息中间件学习记录(what-how-why)

    什么是消息中间件 简单的来说就是消息队列中间件,生产者发送消息到中间件,消息中间件用于 保存消息并发送消息到消费者。 消息中间件RabbitMQ的基本组件 1)producer -生产者 2)customer -消费者 3)broker (经纪人)- MQ服务器,管理消息对列、消息及相关消息。(接收并存储生

    2024年02月13日
    浏览(47)
  • RabbitMQ入门系列01----RabbitMQ简介

    在介绍RabbitMQ之前,我们先来看下面一个电商项目的场景: 商品的原始数据保存在数据库中,增删改查都在数据库中完成。 搜索服务数据来源是索引库(Elasticsearch),如果数据库商品发生变化,索引库数据不能及时更新。 商品详情做了页面静态化处理,静态页面数据也不会

    2023年04月08日
    浏览(41)
  • RabbitMQ节点故障的容错方案

    本文主要探讨rabbitmq集群镜像模式的高可用容错方案和容错能力的探讨。在出现单机故障时相关的容错方案。 更多关于分布式系统的架构思考请参考文档关于常见分布式组件高可用设计原理的理解和思考 在rabbitmq中,只有broker进程,其余的组件或者角色都是通过broker衍生出来

    2024年02月20日
    浏览(58)
  • RabbitMQ --- 简介、快速入门

    微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应 异步通讯:就像发邮件,不需要马上回复 两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。   同步通

    2023年04月26日
    浏览(46)
  • MQ 简介-RabbitMQ

    消息队列作为高并发系统的核心组件之一,能够帮助业务系统结构提升开发效率和系统 稳定性,消息队列主要具有以下特点: 削峰填谷 :主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题 系统解耦 :解决不同重要程度、不同能力级别系统之间依赖导致一死

    2024年02月11日
    浏览(33)
  • RabbitMQ压测简介

    RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。 所有主要的编程语言均有与代理接口通讯的客户端库。 详细见以下链接介绍: rabbitmq_百度百科

    2024年04月12日
    浏览(38)
  • 【后端面经-架构】RabbitMQ简介

    MQ(Message Queue)用于在应用程序之间相互通信,在消息中发送数据进行通信,而不需要特意建立连接传输数据。 与之对应的另一种通信方式是远程直接调用(RPC),需要先建立通信连接然后传递数据。 2.1 简介 RabbitMQ是一个开源的消息队列系统,使用Erlang语言编写的,基于

    2024年02月16日
    浏览(39)
  • 用docker-compose部署Rabbitmq三节点集群部署方案

    主机名 IP node1 10.4.2.10 node2 10.4.2.59 node3 10.4.2.134 (1) 在/root目录下先创建一个rabitmq目录用于存放文件 mkdir  rabitmq (2)修改主机名和域名解析hosts文件 (1)修改主机名 hostnamectl set-hostname  node1    hostnamectl set-hostname  node2 hostnamectl set-hostname  node3 node1  node2   node3 分别对应

    2024年02月04日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包