Centos7单节点部署RabbitMQ

Centos7单节点部署RabbitMQ

简介

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

历史

Rabbit科技有限公司开发了RabbitMQ,并提供对其的支持。起初,Rabbit科技是LSHIFT和CohesiveFT在2007年成立的合资企业,2010年4月被VMware旗下的SpringSource收购。RabbitMQ在2013年5月成为GoPivotal的一部分。

基本概念

RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。
RabbitMQ服务支持下列操作系统:
Linux 、WindowsNT 到 10 Windows、 Server2003 到 2016、 macOS、 Solaris、 FreeBSD 、 TRU64、 VxWorks
RabbitMQ支持下列编程语言:
Python、 Java 、Ruby、 PHP、 C# 、JavaScript 、Go、 Elixir、 Objective-C 、Swift

主要特性

可伸缩性:集群服务
消息持久化:从内存持久化消息到硬盘,再从硬盘加载到内存

安装

Erlang与RabbitMQ,安装路径都应不含空格符。
Erlang使用了环境变量HOMEDRIVE与HOMEPATH来访问配置文件.erlang.cookie,应注意这两个环境变量的有效性。需要设定环境变量ERLANG_HOME,并把%ERLANG_HOME%\bin加入到全局路径中。
RabbitMQ使用本地computer name作为服务器的地址,因此需要注意其有效性,或者直接解析为127.0.0.1
可能需要在本地网络防火墙打开相应的端口。

在这里插入图片描述

AMQP:高级消息队列协议,是应用协议开放的标准,为面向消息中间件设计,它可以使用客户端和对应消息队列进行交互,消息中间件从发布者哪里接收消息,然后转发给消费者(处理消息的应用)。

消息列队: 处理的事件: 流量消峰:秒杀的过程中,常用消息队列来防止后端服务器宕机, 异步处理:数据模型 架构解耦:

消息队列的种类: Redis:后端数据消息队列 MemcacheQ:完美兼容 memcache 多台队列 并发性能好
MSMQ:消息最大的载体,4M,只有发送和接收功能 ZeroMQ:号称最快的消息队列,高吞吐,低延迟,在金融方面用的比较多
Kafka:支持快速的持久化,异步收取,数据量大,高吞吐 ActiveMQ:java的中间力量。
RabbitMQ:开源的,最早的消息队列,最稳定,速度慢,扩展性能比较差,消息封装之后比较大。

RabbitMQ:
在这里插入图片描述

Rabbitmq server,消息队列服务,用于接收生产者产生的消息,并将消息分配给消费者
Producer 生产者,生产消息,消息分为两个部分。 标签和数据,标签用于交换匹配

Consumer 消费者,用来消费队列分配的消息,处理完之后要给队列发送ack回应。
消息ack机制:用来判断哪些消息被消费了,如果检测到被消费了,那么这个消息就会被删除,如果所有的consumer没有消费,这个消息就会回转,再次等带消费。

Connection 生产者和消费者与消息队列的tcp连接
Channel 虚拟通道,建立在tcp之上。
Exchange 交换机,会根据自身的匹配规则交给合适的queue
Exchange的匹配规则:
# Fanout 生产者发送过来的消息交给所有的对列
# Direct 进行精准匹配
# Topic 进行模糊匹配
Queue 消息的载体,队列
Vhost 虚拟主机,一个vhost相当于一个rabbit server ,有单独的队列和交换机。

集群模式:
普通模式:将生产者的消息放在单独的节点上。
镜像模式:将生产者的消息存放在多个节点上。
镜像模式的三个选项:
# all 将产生的消息放在所有的节点上。
# Exactly 将产生的消息放在指定数量的节点上。
# Nodes 将产生的消息放在指定的节点上。


单节点部署RabbitMQ

环境准备

IP 版本 服务
192.168.1.40 CentOS Linux release 7.6.1810 (Core) rabbitmq-server(3.6.15)、erlang(18.1)

RabbitMQ、Erlang安装包链接?

链接:https://pan.baidu.com/s/18ICeCho2kYajfH6lL1xa7w 
提取码:8z7v 
复制这段内容后打开百度网盘手机App,操作更方便哦

安装基本命令

[root@localhost ~]# yum -y install vim net-tools lrzsz net-tools mkae cmake gcc-c++

安装RabbitMQ、Erlang

[root@localhost ~]# rpm -ivh erlang-18.1-1.el7.centos.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:erlang-18.1-1.el7.centos         ################################# [100%]
[root@localhost ~]# yum -y install socat
[root@localhost ~]# rpm -ivh rabbitmq-server-3.6.15-1.el7.noarch.rpm 
警告:rabbitmq-server-3.6.15-1.el7.noarch.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID 6026dfca: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:rabbitmq-server-3.6.15-1.el7     ################################# [100%]

启动服务

[root@localhost ~]# systemctl start rabbitmq-server

查看状态

[root@localhost ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@localhost
[{
   nodes,[{
   disc,[rabbit@localhost]}]},
 {
   running_nodes,[rabbit@localhost]},
 {
   cluster_name,<<"rabbit@localhost">>},
 {
   partitions,[]},
 {
   alarms,[{
   rabbit@localhost,[]}]}]

关闭防火墙、沙盒

[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld && setenforce 0
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

添加插件

[root@localhost ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  amqp_client
  cowlib
  cowboy
  rabbitmq_web_dispatch
  rabbitmq_management_agent
  rabbitmq_management

Applying plugin configuration to rabbit@localhost... started 6 plugins.

添加当前登陆的用户,并将这个用户设为管理员

[root@localhost ~]# rabbitmqctl delete_user guest
Deleting user "guest"
[root@localhost ~]# rabbitmqctl add_user test 123.com
Creating user "test"
[root@localhost ~]# rabbitmqctl set_user_tags test administrator
Setting tags for user "test" to [administrator]

访问

http://192.168.1.40:15672/

在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101931.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 电容的分类及作用_热敏电阻的工作原理及作用

    电容的分类及作用_热敏电阻的工作原理及作用旁路旁路电容是为本地器件提供能量的储能器件,它能使稳压器的输出均匀化,降低负载需求。就像小型可充电电池一样,旁路电容能够被充电,并向器件进行放电。为尽量减少阻抗,旁路电容要尽量靠近负载器件的供电电源管脚和地管脚。这能够很好地防止输入值过大而导致的地电位抬高和噪声。地电位是地连接处在通过大电流毛刺时的电压降。去耦去耦,又称解耦。从电路来说,总是可以区分为驱动的源和被驱动的负载。如果

  • 方舟手游怎么用GG修改器_方舟生存进化gg脚本

    方舟手游怎么用GG修改器_方舟生存进化gg脚本首先,确定你的手机是否可以root,如果不能,需要下载平行空间。在平行空间内添加游戏,和gg修改器。其次,最好是下载正版修改。然后,打开平行空间和gg修改器的所有权限。gg修改器几个常用功能搜索介绍(这里指方舟),搜索数据主要分为两个种类,f类(属性类)和d类(物品类)。新手几个简单的操作,长按修改器图标,开启加速功能。长按搜索出的数据,会弹出选项界面。下面正式开始。一,琥珀修改。首先f搜索480…

  • 华硕ac5300最牛设置_acwing是什么

    华硕ac5300最牛设置_acwing是什么每一头牛的愿望就是变成一头最受欢迎的牛。现在有 N 头牛,编号从 1 到 N,给你 M 对整数 (A,B),表示牛 A 认为牛 B 受欢迎。这种关系是具有传递性的,如果 A 认为 B 受欢迎,B 认为 C 受欢迎,那么牛 A 也认为牛 C 受欢迎。你的任务是求出有多少头牛被除自己之外的所有牛认为是受欢迎的。输入格式第一行两个数 N,M;接下来 M 行,每行两个数 A,B,意思是 A 认为 B 是受欢迎的(给出的信息有可能重复,即有可能出现多个 A,B)。输出格式输出被除自己之外的所有牛认为是

  • [转] 2016 JavaScript 发展现状大调查[通俗易懂]

    [转] 2016 JavaScript 发展现状大调查[通俗易懂][转] 2016 JavaScript 发展现状大调查

  • java的pdf转永中_永中PDF转Word 免费转换不求人!

    java的pdf转永中_永中PDF转Word 免费转换不求人!原标题:永中PDF转Word免费转换不求人!PDF意为“便携式文档格式”,以易于传输与储存、方便阅读、高质感等优点越来越多被使用于办公、学习和科研中,PDF文件一般需要安装阅读器查看文件,有些阅读器页面上支持简单的批注操作,不过,如果想要对PDF文件内容进行编辑,那就比较麻烦了。有些用户把PDF的内容通过复制粘贴到Word文档中,格式、内容往往惨不忍睹,还有些小伙伴会下载PDF转Word的软…

  • 虚拟机里查看linux系统的ip地址ifconfig命令显示信息过多导致看不到ip

    虚拟机里查看linux系统的ip地址ifconfig命令显示信息过多导致看不到ip

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号