虚拟机使用MQ及介绍

mq官网:https://www.rabbitmq.com

一、虚拟机与 MQ 的结合优势

隔离与安全:虚拟机为 MQ 的运行提供了一个独立的环境,与宿主机以及其他虚拟机相互隔离。这意味着即使 MQ 所在的虚拟机出现故障或遭受安全威胁,也不会直接影响到宿主机和其他系统组件。例如,若某个恶意程序试图攻击 MQ,它只能在虚拟机的受限范围内活动,从而保障了整个系统的安全。

环境可定制性:开发者可以根据 MQ 的具体需求,自由定制虚拟机的配置,如内存大小、CPU 核心数、磁盘空间等。对于一些对资源需求较高的 MQ 应用场景,如处理大量实时消息的系统,可以为虚拟机分配更多的内存和 CPU 资源,确保 MQ 的高效运行。同时,还可以在虚拟机中安装特定版本的操作系统和依赖库,以满足 MQ 的特定运行要求。

便捷的测试与开发:在开发和测试阶段,虚拟机使得搭建 MQ 环境变得极为便捷。开发者可以轻松创建多个虚拟机实例,模拟不同的分布式场景,对 MQ 的功能和性能进行全面测试。例如,在测试一个分布式电商系统的消息传递功能时,可以通过在多个虚拟机中分别部署订单系统、库存系统和 MQ,来模拟实际生产环境中的消息交互,及时发现并解决潜在问题。

与其他的消息中间件对比

二、在虚拟机中部署 MQ 的步骤

选择合适的虚拟机软件:常见的虚拟机软件有 VMware Workstation、VirtualBox 等。以 VirtualBox 为例,它是一款开源且功能强大的虚拟机软件,支持多种操作系统的安装。首先需要从官方网站下载并安装 VirtualBox,安装过程较为简单,按照向导提示操作即可。

创建虚拟机:打开 VirtualBox 后,点击 “新建” 按钮创建一个新的虚拟机。在创建过程中,需要设置虚拟机的名称、类型(如 Linux 或 Windows)、内存大小等参数。例如,为了运行基于 Linux 的 MQ,选择 Linux 类型,并根据 MQ 的资源需求合理分配内存,如 2GB。接着,创建虚拟硬盘,选择合适的硬盘类型(如 VDI)和大小。

没有的话创建一个就好了

安装操作系统:下载适合 MQ 运行的操作系统镜像文件,如 Ubuntu Server 镜像。在虚拟机设置中,将光驱设备指向该镜像文件,然后启动虚拟机。按照操作系统安装向导的提示,完成系统的安装过程,包括选择语言、分区、设置用户名和密码等步骤。

像这种可以去网上找虚拟机操作系统

使用docker拉取mq

docker run \-e RABBITMQ_DEFAULT_USER=itheima \-e RABBITMQ_DEFAULT_PASS=123321 \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \--network hmall \-d \rabbitmq:3.8-management

安装完成后,需要先启动docker容器

systemctl start docker

可以根据名字启动

启动mq

docker start 容器名称(或者容器ID)

可以看到启动后可以查看

docker ps

在浏览器中查看

地址是虚拟机的固定网络ip地址加上15672即可访问

创建时的用户名和密码

就成功进来啦

三、在虚拟机中使用 MQ 的注意事项

网络配置:确保虚拟机与宿主机以及其他相关系统之间的网络连接正常。在使用虚拟机的网络模式时,要根据实际情况选择合适的模式,如桥接模式、NAT 模式等。桥接模式下,虚拟机可以直接与宿主机所在网络中的其他设备通信,适合需要与外部网络进行广泛交互的场景;NAT 模式则通过宿主机进行网络地址转换,适合对网络安全性要求较高且主要与宿主机进行通信的场景。

资源监控:由于虚拟机的资源是有限的,需要密切监控 MQ 在虚拟机中的资源使用情况。可以使用操作系统自带的监控工具,如在 Linux 系统中使用top命令查看 CPU 和内存使用情况,使用df -h命令查看磁盘空间使用情况。一旦发现资源不足,及时调整虚拟机的配置或优化 MQ 的运行参数。

性能优化:在虚拟机中运行 MQ 时,可以采取一些性能优化措施。例如,调整虚拟机的内存分配策略,为 MQ 预留足够的内存空间;优化 MQ 的配置参数,如消息队列的缓存大小、线程池设置等;对虚拟机的磁盘 I/O 进行优化,如选择合适的磁盘类型和设置合理的磁盘缓存。

四、总结

在虚拟机中使用 MQ 为分布式系统的开发和部署带来了诸多便利。通过合理利用虚拟机的隔离性、可定制性等优势,开发者能够更加灵活地搭建和管理 MQ 环境。然而,在实际使用过程中,需要注意网络配置、资源监控和性能优化等方面的问题,以确保 MQ 在虚拟机中稳定高效地运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/892367.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】Python之Selenium基础教程+实战demo:提升你的测试+测试数据构造的效率!

这里写目录标题 什么是Selenium?Selenium基础用法详解环境搭建编写第一个Selenium脚本解析脚本脚本执行结果常用的元素定位方法常用的WebDriver方法等待机制 Selenium高级技巧详解页面元素操作处理弹窗和警告框截图和日志记录多窗口和多标签页操作 一个实战的小demo…

单通道串口服务器(三格电子)

一、产品介绍 1.1 功能简介 SG-TCP232-110 是一款用来进行串口数据和网口数据转换的设备。解决普通 串口设备在 Internet 上的联网问题。 设备的串口部分提供一个 232 接口和一个 485 接口,两个接口内部连接,同 时只能使用一个口工作。 设 备 的网 口…

socket网络编程-TC/IP方式

网络编程 1.概念:两台设备之间通过网络数据传输。 2.网络通信:将数据通过网络从一台设备传输另外一台设备。 3.java.net包下提供了一系列的类和接口,提供程序员使用,完成网络通信。 TCP和UDP TCP协议: 1.使用TCP协…

Docker compose 使用 --force-recreate --no-recreate 控制重启容器时的行为【后续】

前情:上一篇实际是让AI工具帮我总结了一下讨论的内容,这里把讨论的过程贴出来,这个讨论是为解决实际问题 前文https://blog.csdn.net/wgdzg/article/details/145039446 问题说明: 我使用 docker compose 管理我的容器&#xff0…

SAP SD学习笔记27 - 贩卖契约(框架协议)2 - 基本契约 - 金额契约(价值合同)

上一章讲了贩卖契约(框架协议)的概要,以及贩卖契约中最为常用的 基本契约 - 数量契约。 SAP SD学习笔记26 - 贩卖契约(框架协议)的概要,基本契约 - 数量契约-CSDN博客 本章继续讲SAP中的内容: - 基本契约 - 金额契约…

【面试题】技术场景 7、定位系统瓶颈

系统瓶颈定位方法总述 面试官询问如何快速定位系统瓶颈,旨在考察线上调试经验。主要方法包括: 压测:在项目上线前找出系统瓶颈并修复。监控工具或链路追踪工具:项目上线后用于实时监控或评测找瓶颈。Arthas(原阿尔萨…

在Jmeter中跨线程组传递变量(token)--设置全局变量

参考资料: Jmeter跨线程组传递参数(token)_jmeter获取token传递给下一个线程组详解-CSDN博客 最近工作中遇到一个问题,就是如何跨线程组传递变量,比如token,后来找到一些资料解决了该问题,目前有两种方式都可以解决,我…

QT 常用控件的常用方法

QRadioButton、QCheckBox 常用函数: text(): 用于获取单选按钮的文本标签。 setText(const QString &text): 用于设置单选按钮的文本标签。 isChecked(): 用于检查单选按钮是否被选中。 setChecked(bool checked): 用于设置单选按钮是否被选中。 setIcon(c…

Element-UI:如何实现表格组件el-table多选场景下根据数据对某一行进行禁止被选中?

如何实现表格组件el-table多选场景下根据数据对某一行进行禁止被选中? 在使用 Element UI 的 Table 组件时,如果你想要禁用某一行的选中(特别是在多选模式下),可以通过自定义行的 selectable 属性来实现。selectable …

rhcsa练习(3)

1 、创建文件命令练习: ( 1 ) 在 / 目录下创建一个临时目录 test ; mkdir /test ( 2 )在临时目录 test 下创建五个文件,文件名分别为 passwd , group , bashrc &#x…

uc/os-II 原理及应用(八) 系统裁减以及移植到51单片机上

两个习题 先了解下CPU上函数调用的过程: 一个程序取得函数地址,先保护现场将局部变量及参数压栈,再将调用函数的参数压栈,然后跳转到函数位置,将参数出栈,执行代码,结束后返回到调用位置,再怖复…

高等数学学习笔记 ☞ 洛必达法则与泰勒公式

1. 洛必达法则 1. 型与型未定式(洛必达法则) (1)型:若函数同时满足以下条件: (2)型:若函数同时满足以下条件: ①:当时&…

什么样的人适合从事FPGA开发的工作?

FPGA开发不仅要求扎实的技术基础,还非常看重团队合作、自信、沟通技巧以及细致入微的工作态度。从业者需具备面对复杂项目的自信,优秀的沟通能力以确保团队协作顺畅,严谨细心以应对精密的硬件设计,以及强烈的责任心来驱动每一个开…

【LeetCode】力扣刷题热题100道(26-30题)附源码 轮转数组 乘积 矩阵 螺旋矩阵 旋转图像(C++)

目录 1.轮转数组 2.除自身以外数组的乘积 3.矩阵置零 4.螺旋矩阵 5.旋转图像 1.轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 class Solution { public:void rotate(vector<int>& nums, int k) …

JAVA 使用apache poi实现EXCEL文件的输出;apache poi实现标题行的第一个字符为红色;EXCEL设置某几个字符为别的颜色

设置输出文件的列宽&#xff0c;防止文件过于丑陋 Sheet sheet workbook.createSheet(FileConstants.ERROR_FILE_SHEET_NAME); sheet.setColumnWidth(0, 40 * 256); sheet.setColumnWidth(1, 20 * 256); sheet.setColumnWidth(2, 20 * 256); sheet.setColumnWidth(3, 20 * 25…

卷积神经网络CNN——卷积层、池化层、全连接层

参考这篇文章,讲的很详细: 卷积神经网络CNN——卷积层、池化层、全连接层_卷积层,池化层,全连接层-CSDN博客 原文链接:https://blog.csdn.net/qq_59702185/article/details/143744365 学习目标 了解卷积神经网络的构成 知道卷积的原理以及计算公式 了解池化的作用以及计算…

怎么抓取ios 移动app的https请求?

怎么抓取IOS应用程序里面的https&#xff1f; 这个涉及到2个问题 1.电脑怎么抓到IOS手机流量&#xff1f; 2.HTTPS怎么解密&#xff1f; 部分app可以使用代理抓包的方式&#xff0c;但是正式点的app用代理抓包是抓不到的&#xff0c;例如pin检测&#xff0c;证书双向校验等…

身份鉴权(PHP)(小迪网络安全笔记~

免责声明&#xff1a;本文章仅用于交流学习&#xff0c;因文章内容而产生的任何违法&未授权行为&#xff0c;与文章作者无关&#xff01;&#xff01;&#xff01; 附&#xff1a;完整笔记目录~ ps&#xff1a;本人小白&#xff0c;笔记均在个人理解基础上整理&#xff0c;…

自定义音频播放样式结合Howler.js

滑动式滚动条 不使用audio默认样式 自定义音频播放样式 当前时间 开始时间 结束时间 可播放可暂停 滚动条可拖动进行同步 具体样式可调整npm install howler --save<template><div class"audio-player"><div v-if"isLoading" class"l…

LLM prompt提示构造案例:语音回复内容;o1思维链

1、语音回复内容 目的&#xff1a; 语音聊天助手的prompt&#xff0c;让大模型来引导聊天内容&#xff0c;简短和友好&#xff0c;从而文字转语音时候也比较高效。 ## 角色设定与交互规则 ### 基本角色 你是用户的好朋友. 你的回答将通过逼真的文字转语音技术阅读. ### 回答规则…