博客
关于我
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 字符串截取函数,字段截取,字符串截取
    查看>>
    MySQL 存储引擎
    查看>>
    mysql 存储过程 注入_mysql 视图 事务 存储过程 SQL注入
    查看>>
    MySQL 存储过程参数:in、out、inout
    查看>>
    mysql 存储过程每隔一段时间执行一次
    查看>>
    mysql 存在update不存在insert
    查看>>
    Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势
    查看>>
    Mysql 学习总结(87)—— Mysql 执行计划(Explain)再总结
    查看>>
    Mysql 学习总结(88)—— Mysql 官方为什么不推荐用雪花 id 和 uuid 做 MySQL 主键
    查看>>
    Mysql 学习总结(89)—— Mysql 库表容量统计
    查看>>
    mysql 实现主从复制/主从同步
    查看>>
    mysql 审核_审核MySQL数据库上的登录
    查看>>
    mysql 导入 sql 文件时 ERROR 1046 (3D000) no database selected 错误的解决
    查看>>
    mysql 导入导出大文件
    查看>>
    mysql 将null转代为0
    查看>>
    mysql 常用
    查看>>
    MySQL 常用列类型
    查看>>
    mysql 常用命令
    查看>>
    Mysql 常见ALTER TABLE操作
    查看>>
    MySQL 常见的 9 种优化方法
    查看>>