华为云云耀云服务器L实例评测 | 实例使用教学之软件安装:华为云云耀云服务器环境下安装 RabbitMQ 集群

华为云云耀云服务器L实例评测 | 实例使用教学之软件安装:华为云云耀云服务器环境下安装 RabbitMQ 集群

介绍华为云云耀云服务器

华为云云耀云服务器 (目前已经全新升级为 华为云云耀云服务器L实例)

华为云云耀云服务器是什么
复制代码
华为云耀云服务器(Hyper Elastic Cloud Server) HECS 是一种可以快速搭建且易于管理的新一代云服务器,支持全方位性能监测,快速锁定中高风险信息
并及时提出建议,确保业务平稳运行;同时提供开箱即用的镜像,实现一键应用部署。
华为云云耀云服务器和上一代的服务器对比有什么不同
  • 一站式配置引导:支持一站式配置指导,预装第三方市场镜像,新手小白也可分钟级完成应用搭建
  • 关键信息高效获取:极简控制台可视化管理,关键信息详情一目了然。结合高效的可视化图表,所见即所得,让您更聚焦业务
  • 全方位安全保障:提供全方位性能监测,实时观测性能全貌,快速锁定中高风险资源。智能助手深挖业务适配度,智选推荐业务升级,多重保护性能无忧
华为云云耀云服务器和弹性计算云服务器对比有什么不同
复制代码
与弹性云服务器相比,云耀云服务器简化了购买ECS过程中的一些高级配置,一站式融合购买、登录、磁盘配置、网络配置、云监控、主机安全等多种功能,帮助您更加便捷高效的部署、配置和管理应用。
但是 HECS 底层使用的物理硬件资源与ECS一致,同CPU、内存的HECS与ECS计算能力在同一标准
另外就是 HECS 和普通的 ECS 有足够的成本优势
华为云云耀云服务器和上一代的服务器对比有什么优势
复制代码
中小企业便捷高效的在云端构建电商网站、Web应用、小程序、学习环境、各类开发测试等,简单上云快一步
  • 智能不卡顿:瑶光AI智能调度与新一代网络技术,软硬实力驱动性能倍增,成就更流畅、稳定的上云体验
  • 价优随心用:技术升级优化用云成本,普惠更多初创企业和开发者
  • 上手更简单:新手友好,即开即用,部署轻松,让您的业务开展快人一步
  • 管理特省心:运维、监控、资源分布一站式管理,运维更省心高效,让IT更聚焦业务

简而言之

  • 易搭建
  • 更实惠
  • 易维护
  • 更安全

介绍华为云云耀云服务器适用于哪些场景

适合于 IT 能力相对较弱的初创及成长型企业和入门开发者

介绍为什么选择华为云云耀云服务器

随着云计算时代的进一步深入,越来越多的中小企业和开发者需要一款简单易用、高能高效的云计算基础设施产品来

支撑自身业务运营和创新开发。华为云焕新推出的云耀云服务器L实例,正是满足企业和开发者需求的完美选择

主要解决如下的几个核心痛点问题

  • 选择困难
  • 部署困难
  • 运维困难
  • 成本难测
  • 轻量
  • 产品性能稳定性差

基础架构

  • HECS L基于华为云擎天架构打造
  • 包含数据面"软硬协同系统"和管控面"瑶光智慧云脑"两部分
  • 数据面针对L0/L1/L2进行垂直优化
  • 通过液冷实现高功耗CPU散热

通过 Docker Compose 构建 RabbitMQ 集群

RabbitMQ 简介

RabbitMQ是一个开源的消息代理系统,用于支持分布式应用程序间的消息传递。在实际生产环境中,我们通常需要搭建RabbitMQ的集群来提高可用性和性能

Docker Compose 简介

Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,我们可以使用Docker Compose来轻松地搭建RabbitMQ镜像集群

准备工作

我们登录到宝塔面板,因为之前已经安装了 Docker 、Docker Compose ,本次不再安装,我们坐下验证工作即可,确保软件正常运行

编写 Compose 代码

yaml 复制代码
version: '3'
services:
  rabbitmq1:
    image: rabbitmq:3-management
    container_name: rabbitmq1
    hostname: rabbitmq1
    ports:
      - "5672:5672"
      - "15672:15672"
    environment:
      - RABBITMQ_ERLANG_COOKIE=secret_cookie
      - RABBITMQ_NODENAME=rabbitmq1
      - RABBITMQ_CLUSTERED=true
      - RABBITMQ_CLUSTER_NODE_TYPE=disc
      - RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-rabbitmq_clusterer formation.minimal_master_nodes 3"
    networks:
      - rabbitmq-cluster

  rabbitmq2:
    image: rabbitmq:3-management
    container_name: rabbitmq2
    hostname: rabbitmq2
    ports:
      - "5673:5672"
      - "15673:15672"
    environment:
      - RABBITMQ_ERLANG_COOKIE=secret_cookie
      - RABBITMQ_NODENAME=rabbitmq2
      - RABBITMQ_CLUSTERED=true
      - RABBITMQ_CLUSTER_NODE_TYPE=disc
      - RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-rabbitmq_clusterer formation.minimal_master_nodes 3"
    networks:
      - rabbitmq-cluster

  rabbitmq3:
    image: rabbitmq:3-management
    container_name: rabbitmq3
    hostname: rabbitmq3
    ports:
      - "5674:5672"
      - "15674:15672"
    environment:
      - RABBITMQ_ERLANG_COOKIE=secret_cookie
      - RABBITMQ_NODENAME=rabbitmq3
      - RABBITMQ_CLUSTERED=true
      - RABBITMQ_CLUSTER_NODE_TYPE=disc
      - RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-rabbitmq_clusterer formation.minimal_master_nodes 3"
    networks:
      - rabbitmq-cluster

networks:
  rabbitmq-cluster:
    driver: bridge

构建 Docker Compose 项目模板

添加完成

通过项目运行容器

我们先拉取镜像

然后到容器中添加容器

进行容器编排,选择 MQ 模版,输入名称

等待执行结果,预计需要几分钟

运行完毕,我们发现运行失败了

我们查看一下日志

意思是存在一些版本的问题,以及 cookie 目录需要 root 用户才可以访问的问题

那我们对症下药,变更一下 MQ 的版本,我们改为 3.8.2 版本,低于他说的 3.9 版本

修改完成后,我们删除之前的项目,然后重新添加

再次运行还是不能成功,我们继续看日志,日志变了,只剩下一个问题了

重新调整了一下 Compose 文件,可以正常启动了

yaml 复制代码
version: '3'
services:
  rabbitmq1:
    image: rabbitmq:3.8.2-management
    container_name: rabbitmq1
    hostname: rabbitmq1
    ports:
      - "5672:5672"
      - "15672:15672"
    environment:
      - RABBITMQ_ERLANG_COOKIE=secret_cookie
      - RABBITMQ_NODENAME=rabbitmq1
      - RABBITMQ_CLUSTERED=true
      - RABBITMQ_CLUSTER_NODE_TYPE=disc
    networks:
      - rabbitmq-cluster

  rabbitmq2:
    image: rabbitmq:3.8.2-management
    container_name: rabbitmq2
    hostname: rabbitmq2
    ports:
      - "5673:5672"
      - "15673:15672"
    environment:
      - RABBITMQ_ERLANG_COOKIE=secret_cookie
      - RABBITMQ_NODENAME=rabbitmq2
      - RABBITMQ_CLUSTERED=true
      - RABBITMQ_CLUSTER_NODE_TYPE=disc
    networks:
      - rabbitmq-cluster

  rabbitmq3:
    image: rabbitmq:3.8.2-management
    container_name: rabbitmq3
    hostname: rabbitmq3
    ports:
      - "5674:5672"
      - "15674:15672"
    environment:
      - RABBITMQ_ERLANG_COOKIE=secret_cookie
      - RABBITMQ_NODENAME=rabbitmq3
      - RABBITMQ_CLUSTERED=true
      - RABBITMQ_CLUSTER_NODE_TYPE=disc
    networks:
      - rabbitmq-cluster

networks:
  rabbitmq-cluster:
    driver: bridge


验证集群状态

我们开放一下端口:防火墙、安全组


尝试访问 MQ http://120.46.137.251:15672/

目前集群状态是没有成功了,只是运行了 3 个 MQ 实例,我们进行集群,进入实例执行命令

bash 复制代码
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&
  echo "Asia/Shanghai" >/etc/timezone
date "+%Y-%m-%d %H:%M:%S" ## 显示设置后,新的系统时间
exit

去第二个实例

bash 复制代码
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbitmq1@rabbitmq1
rabbitmqctl start_app

去第三个实例

bash 复制代码
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbitmq1@rabbitmq1
rabbitmqctl start_app

登录到 MQ 控制台,我们看看

集群成功了,三个实例运行正常

测试停掉其中一个实例

我们去关闭其中一个 MQ


节点 2 显示未运行

相关推荐
成工小白34 分钟前
【Linux】C语言模拟实现shell命令行(程序替换原理)
linux·运维·服务器
西装没钱买2 小时前
C语言多进程TCP服务器与客户端
服务器·c语言·tcp/ip·进程
福理原乡大王2 小时前
Linux信号详解
linux·运维·服务器·c++·ubuntu·信号处理
ldq_sd3 小时前
centos 8.3(阿里云服务器)mariadb由系统自带版本(10.3)升级到10.6
服务器·阿里云·centos
자신을 변화시키다4 小时前
磁盘配额管理
linux·运维·服务器·ubuntu·磁盘管理
国际云,接待4 小时前
AWS S3:云存储的“超级基石”
服务器·网络·人工智能·github·aws·亚马逊
IU宝4 小时前
文件系统1(Linux中)
linux·运维·服务器
小Tomkk5 小时前
Linux 系统设置时区
linux·运维·服务器
yang_xiao_wu_5 小时前
Linux
linux·运维·服务器
星哥说事5 小时前
Rocky Linux 9 系统安装配置图解教程并做简单配置
linux·运维·服务器