博客
关于我
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/

    你可能感兴趣的文章
    mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
    查看>>
    MYSQL 查看最大连接数和修改最大连接数
    查看>>
    MySQL 查看有哪些表
    查看>>
    mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
    查看>>
    MySql 查询以逗号分隔的字符串的方法(正则)
    查看>>
    MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
    查看>>
    mysql 查询,正数降序排序,负数升序排序
    查看>>
    MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
    查看>>
    mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
    查看>>
    mysql 死锁(先delete 后insert)日志分析
    查看>>
    MySQL 死锁了,怎么办?
    查看>>
    MySQL 深度分页性能急剧下降,该如何优化?
    查看>>
    MySQL 深度分页性能急剧下降,该如何优化?
    查看>>
    MySQL 添加列,修改列,删除列
    查看>>
    mysql 添加索引
    查看>>
    MySQL 添加索引,删除索引及其用法
    查看>>
    MySQL 用 limit 为什么会影响性能?
    查看>>
    MySQL 用 limit 为什么会影响性能?有什么优化方案?
    查看>>
    MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
    查看>>
    mysql 用户管理和权限设置
    查看>>