虚拟机使用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 在虚拟机中稳定高效地运行。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

比亚迪夏直插家用MPV腹地,“迪王”开启全面销冠新征程

文/王俣祺 导语:比亚迪前脚刚收获2024年的全面成功,后脚立刻就开始布局2025年的产品矩阵了。比亚迪夏的横空出世,看来家用MPV市场也要感受“迪王”的恐怖如斯了。 家用MPV市场的“意外之喜” 1月8日,比亚迪夏终于在万众瞩目之下…

c++入门之 命名空间与输入输出

1、命名空间 1.1使用命名空间的原因 先看一个例子&#xff1a; #include <iostream>int round 0;int main() {printf("%d", round);return 0; }请问&#xff0c;这个程序能跑起来吗&#xff1f; 答案是否定的 原因是&#xff0c;当我们想创建一个全局变量 …

php 使用simplexml_load_string转换xml数据格式失败

本文介绍如何使用php函数解析xml数据为数组。 <?php$a <xml><ToUserName><![CDATA[ww8b77afac71336111]]></ToUserName><FromUserName><![CDATA[sys]]></FromUserName><CreateTime>1736328669</CreateTime><Ms…

12 USART串口通讯

1 串口物理层 两个设备的“DB9接口”之间通过串口信号建立连接&#xff0c;串口信号线中使用“RS232标准”传输数据信号。由于RS232电平标准的信号不能直接被控制器直接识别&#xff0c;所以这些信号会经过“电平转换芯片”转换成控制器能识别的“TTL校准”的电平信号&#xff…

FreePBX 17 on ubuntu24 with Asterisk 20

版本配置&#xff1a; FreePBX 17&#xff08;最新&#xff09; Asterisk 20&#xff08;最新Asterisk 22&#xff0c;但是FreePBX 17最新只支持Asterisk 21&#xff0c;但是21非LTS版本&#xff0c;所以选择Asterisk 20&#xff09; PHP 8.2 Maria DB (v10.11) Node J…

搜广推面经五

饿了么推荐算法 一、介绍InfoNCE Loss、InfoNCE温度系数的作用 InfoNCE Loss&#xff08;Information Noise Contrastive Estimation Loss&#xff09;是一种常用于自监督学习和对比学习中的损失函数&#xff0c;特别是在信息论和无监督学习中有广泛应用。 它的核心思想是通过…

机器学习免费使用的数据集及网站链接

机器学习领域存在许多可以免费使用的数据集&#xff0c;这些数据集来自于学习、研究、比赛等目的。 一、综合性数据集平台 1.Kaggle 网址&#xff1a;Kaggle 数据集https://www.kaggle.com/datasets Kaggle是一个数据科学竞赛和社区平台&#xff0c;提供了大量的数据集供用…

浅尝Appium自动化框架

浅尝Appium自动化框架 Appium自动化框架介绍Appium原理Appium使用安装平台驱动实战 坑 Appium自动化框架介绍 Appium 是一个开源的自动化测试框架&#xff0c;最初设计用于移动应用的测试&#xff0c;但现在它也扩展了对桌面端应用的支持。Appium 使得自动化测试变得更加简单&…

ubuntu 20.04 安装docker--小白学习之路

更新包 sudo apt-get update # 安装需要的软件包以使apt能够通过HTTPS使用仓库 sudo apt-get install ca-certificates curl gnupg lsb-release 使用清华大学源 # 添加Docker官方的GPG密钥 curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo…

MMDetection框架下的常见目标检测与分割模型综述与实践指南

目录 综述与实践指南 SSD (Single Shot MultiBox Detector) 基本配置和使用代码 RetinaNet 基本配置和使用代码 Faster R-CNN 基本配置和使用代码 Mask R-CNN 基本配置和使用代码 Cascade R-CNN 基本配置和使用代码 总结 综述与实践指南 MMDetection是一个基于Py…

语音机器人外呼的缺点

也许是因为经济形式变差&#xff0c;大部分都是消费降级的策略。企业也一样&#xff0c;开源不行就只能重点节流。以前10个人做的工作&#xff0c;希望能用2个语音机器人就能完成。确实语音机器人是可以大幅提升外呼效率的&#xff0c;节约成本也很明显&#xff0c;但是今天不说…

微机原理期末复习(一)

编程题 汇编语言程序的整体结构 STACK SEGMENT STACK STACKDW 100H DUP(?) TOP LABEL WORD ; 使用LEBEL获取栈的尾部偏移地址存储到TOP中&#xff0c;以便初始化sp STACK ENDSDATA SEGMENT... ; 用户定义的变量 DATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA, ES: DATA, …

UML(统一建模语言)

目录 一、用例图&#xff08;Use Case Diagram&#xff09; 二、类图&#xff08;Class Diagram&#xff09; 2.1、泛化&#xff08;Generalization&#xff09; 2.2、实现&#xff08;Realization&#xff09; 2.3、关联&#xff08;Association&#xff09; 2.4、聚合&…

流浪猫流浪狗领养PHP网站源码

源码介绍 流浪猫流浪狗领养PHP网站源码&#xff0c;适合做猫狗宠物类的发信息发布。当然其他信息发布也是可以的。 导入数据库&#xff0c;修改数据库配置/application/database.php 设置TP伪静态&#xff0c;设置运行目录&#xff0c; 后台&#xff1a;/abcd.php/dashboard?…

轻量级适合阅读的优秀 C++ 开源项目

CTPL 这是一个现代简易版的、高效的C线程池库&#xff0c;代码行数500行左右。 代码示例&#xff1a; void first(int id) { std::cout << "hello from " << id << \n; } struct Second { void operator()(int id) const { std::cout << &q…

下载导出Tomcat上的excle文档,浏览器上显示下载

目录 1.前端2.Tomcat服务器内配置3.在Tomcat映射的文件内放置文件4.重启Tomcat&#xff0c;下载测试 1.前端 function downloadFile() {let pictureSourceServer "http://192.168.1.1:8080/downFile/";let fileName "测试文档.xlsx";let fileURL pictu…

winform第三方界面开源库AntdUI的使用教程保姆级环境设置篇

1. AntdUI 1.1. 导入项目 1.1.1. 首先新建一个空白的基于.net的Winfrom项目1.1.2. 复制AntdUI中src目录到我们的解决方案下面1.1.3. 解决方案下添加现有项目1.1.4. 添加项目引用 1.2. 编写代码 1.2.1. 改写Form1类&#xff0c;让其继承自public partial class Form1 : AntdUI.W…

【DES加密】

什么是DES DES(Data Encryption Standard) 是一种对称加密算法。它的设计目标是提供高度的数据安全性和性能。 DES的概念 DES使用56位的密钥和64位的明文块进行加密。DES算法的分组大小是64位&#xff0c;因此&#xff0c;如果需要加密的明文长度不足64位&#xff0c;需要进…

【FPGA】时序约束与分析

设计约束 设计约束所处环节&#xff1a; 约束输入 分析实现结果 设计优化 设计约束分类&#xff1a; 物理约束&#xff1a;I/O接口约束&#xff08;例如引脚分配、电平标准设定等物理属性的约束&#xff09;、布局约束、布线约束以及配置约束 时序约束&#xff1a;设计FP…

docker搭建atlassian-confluence:7.2.0

文章目录 引言I 部署前准备数据库镜像准备自己构建镜像dockerhub第三方镜像II 安装启动容器基础配置(获取服务器ID)授权码获取集群选择设置数据库配置管理员账号引言 准备数据库、镜像启动容器获取服务器ID根据服务器ID等信息,基于atlassian-agent.jar 授权I 部署前准备 数…