博客
关于我
Centos7单节点部署RabbitMQ
阅读量:835 次
发布时间:2019-03-24

本文共 1795 字,大约阅读时间需要 5 分钟。

RabbitMQ技术文章

简介

RabbitMQ是开源的高级消息队列协议(AMQP)中间件,由Erlang语言开发。它以高性能、健壮性和可伸缩性著称,广泛应用于消息分发和异步处理场景。支持多种操作系统及编程语言,适合构建高可用性和高可扩展性的消息系统。

历史

RabbitMQ最初由LShift开发,2010年被SpringSource(VMware子公司)收购,后来成为Pivotal的一部分。RabbitMQ的设计理念和实现深受Erlang语言的影响,其集群机制基于Erlang的开放电信平台。

基本概念

RabbitMQ主要包括以下组件:

  • Exchange(交换机):根据规则将消息路由至目标队列
  • Queue(队列):消息的存储和消费载体
  • Channel(虚拟通道):基于TCP协议的通信渠道
  • Connection(连接):生产者与消费者与消息队列的通信链路
  • Virtual Host(虚拟主机):提供独立的虚拟环境

支持操作系统包括Linux、Windows、macOS、Solaris等,编程语言涵盖Java、Python、C#、JavaScript等。

主要特性

  • 可伸缩性:支持横向扩展
  • 消息持久化:保障消息不丢失
  • ** 高可用性**:通过集群实现无单点故障
  • 安装

    环境准备

    安装前确保Erlang和RabbitMQ的安装路径不含空格符。Yum命令用于安装必要工具包:

    yum -y install vim net-tools lrzsz net-tools mkae cmake gcc-c++

    接着安装RabbitMQ和Erlang:

    rpm -ivh erlang-18.1-1.el7.centos.x86_64.rpmrpm -ivh rabbitmq-server-3.6.15-1.el7.noarch.rpm

    启动服务并检查状态:

    systemctl start rabbitmq-server

    关闭防火墙并禁用:

    systemctl stop firewalld && systemctl disable firewalld && setenforce 0

    安装完成后,默认用户为 guest,可通过命令添加管理员用户:

    rabbitmqctl delete_user guestrabbitmqctl add_user test 123.comrabbitmqctl set_user_tags test administrator

    访问地址为:http://IP地址:15672

    AMQP与消息队列

    AMQP特性

    • 开放标准协议
    • 支持异步通信
    • 适合复杂数据模型
    • 解耦发布与消费

    消息队列类型

    • Redis:基于内存,发布速率有限
    • MemcachedQ:与Memcache兼容,性能较好
    • MSMQ:以内存为载体,仅支持点对点通信
    • ZeroMQ:速度快,延迟低,适合金融量级业务
    • Kafka:高吞吐,持久化能力强
    • ActiveMQ:功能全面,但安装复杂
    • RabbitMQ:开源稳定,适合复杂场景,但消息封装较大

    集群模式

    RabbitMQ支持三种集群模式:

  • 镜像模式
    • all:所有节点接收消息
    • exactly:指定节点接收消息
    • nodes:指定特定节点接收消息
  • 单节点部署

    环境配置

    服务器环境配置:

    • IP:192.168.1.40
    • 操作系统:CentOS Linux 7.6.1810
    • 服务包:RabbitMQ 3.6.15,Erlang 18.1

    安装命令:

    yum -y install socatrpm -ivh erlang-18.1-1.el7.centos.x86_64.rpmrpm -ivh rabbitmq-server-3.6.15-1.el7.noarch.rpm

    启动服务:

    systemctl start rabbitmq-server

    检查状态:

    rabbitmqctl cluster_status

    添加插件:

    rabbitmq-plugins enable rabbitmq_management

    默认用户权限管理:

    rabbitmqctl delete_user guestrabbitmqctl add_user test 123.comrabbitmqctl set_user_tags test administrator

    转载地址:http://dugkk.baihongyu.com/

    你可能感兴趣的文章
    Nessus漏洞扫描教程之配置Nessus
    查看>>
    Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
    查看>>
    nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML.
    查看>>
    nestesd exception is java .lang.NoSuchMethodError:com.goolge.common.collect
    查看>>
    nestJS学习
    查看>>
    net core 环境部署的坑
    查看>>
    NET Framework安装失败的麻烦
    查看>>
    Net 应用程序如何在32位操作系统下申请超过2G的内存
    查看>>
    Net.Framework概述
    查看>>
    NET3.0+中使软件发出声音[整理篇]<转>
    查看>>
    net::err_aborted 错误码 404
    查看>>
    NetApp凭借领先的混合云数据与服务把握数字化转型机遇
    查看>>
    NetAssist网络调试工具使用指南 (附NetAssist工具包)
    查看>>
    Netbeans 8.1启动参数配置
    查看>>
    NetBeans IDE8.0需要JDK1.7及以上版本
    查看>>
    NetBeans之JSP开发环境的搭建...
    查看>>
    NetBeans之改变难看的JSP脚本标签的背景色...
    查看>>
    netbeans生成的maven工程没有web.xml文件 如何新建
    查看>>
    netcat的端口转发功能的实现
    查看>>
    NetCore 上传,断点续传,可支持流上传
    查看>>