RabbitMQ应用(基于腾讯云)
1.防火墙配置
关于RabbitMQ的远程,主要有4个端口需要开通【入站规则】,分别是:
- 端口 5672:这是 RabbitMQ 的默认 AMQP(Advanced Message Queuing Protocol)端口,用于客户端与 RabbitMQ 服务器之间建立连接并进行消息传递。AMQP 是一种高级消息队列协议,客户端通过这个端口发送和接收消息,实现应用程序之间的异步通信。许多编程语言的 RabbitMQ 客户端库默认使用此端口来连接服务器。
- 端口 15762:这个端口通常是 RabbitMQ Management 插件使用的 HTTPS 端口。通过该端口,用户可以通过浏览器访问 RabbitMQ 的管理界面,以可视化的方式管理和监控 RabbitMQ 服务器,包括查看队列、交换机、绑定关系、连接信息、消息统计等,还可以进行用户管理、权限设置等操作。如果启用了 SSL/TLS 加密,那么与管理界面的安全连接就会使用这个端口。
- 端口 25762:一般情况下,RabbitMQ 本身不会直接使用这个端口。可能是在某些特定的部署场景中,被其他与 RabbitMQ 相关的工具、插件或自定义应用程序所使用,用于特定的功能扩展或与外部系统的交互,但这不是 RabbitMQ 的标准端口用途。
- 端口 4396:同样,这个端口也不是 RabbitMQ 的标准端口。它可能是在特定的网络环境或自定义配置中,被用于与其他服务或应用程序进行通信,或者是被误配置为 RabbitMQ 相关的端口,但在默认的 RabbitMQ 功能中,没有明确指定该端口的特定用途。
需要注意的是,虽然 5672 和 15762 端口是 RabbitMQ 较为常见和标准的端口,但在实际部署中,管理员可以根据需求和安全策略对端口进行自定义配置。而对于非标准端口,如 25762 和 4396,需要根据具体的应用场景和配置来确定其确切用途,如果在 RabbitMQ 环境中发现这些端口被使用,应检查相关的配置和日志,以了解其作用和是否存在潜在的安全风险。
端口配置案例:
2.安全组配置
3. 配置 RabbitMQ 以允许远程连接
默认情况下,RabbitMQ 仅允许本地连接。你需要修改rabbitmq.conf
文件来允许远程连接。该文件通常位于/etc/rabbitmq/
目录下,如果没有,则可以直接新建
打开rabbitmq.conf
文件,添加或修改以下配置:
plaintext
loopback_users.guest = false
listeners.tcp.default = 5672
4.修复节点名称配置
配置rabbitmq-env.conf
5.测试端口
以上可以采用telnet的方式进行测试
telnet <您的服务器IP> 5672 # AMQP端口
curl http://<您的服务器IP>:15672 # 管理界面(需返回HTML)
6.配置远程登陆用户
7.配置后即可登录
8.配置VirtulHost
在 RabbitMQ 中,Virtual Host(虚拟主机,简称 vhost )是一种逻辑隔离机制,用于在同一个 RabbitMQ 实例中创建多个独立的环境,类似于在一台物理服务器上运行多个虚拟服务器。它有以下作用:
实现多租户隔离
在同一台 RabbitMQ 实例中,可运行多个逻辑上相互隔离的环境。不同租户(比如不同应用、团队等 )使用各自的虚拟主机。每个虚拟主机拥有独立的队列、交换器、绑定关系 ,避免不同应用或系统之间互相干扰。例如,多个业务线共用一个 RabbitMQ 实例,通过虚拟主机实现各业务线消息通信的隔离。
便于权限管理
能为每个虚拟主机设置独立的用户权限。可对不同用户赋予访问特定虚拟主机的权限,限制其只能在该虚拟主机内创建或操作队列、交换器等资源,增强系统安全性。比如,只允许某个用户在特定虚拟主机中发送消息,但不允许其创建队列。
实现资源隔离
各虚拟主机内的队列、交换器和绑定关系相互独立,不会与其他虚拟主机混淆,确保不同应用的消息资源不会相互干扰、误用。
独立管理和监控
每个虚拟主机的队列、交换器等资源都能独立监控和管理。管理员可分别对不同虚拟主机进行配置、优化,而不影响其他虚拟主机。例如,针对开发、测试、生产等不同环境的虚拟主机,分别调整消息队列的参数。
适用不同使用场景
-
隔离不同应用:当有多个应用使用 RabbitMQ,且应用间不相关或不能互相影响时,为每个应用创建单独虚拟主机。如一个企业的订单系统、库存系统分别使用不同虚拟主机。
-
分配给不同团队:大型组织中,不同团队共享 RabbitMQ 实例,为各团队创建独立虚拟主机,保障其队列、交换器等资源互不干扰。
-
环境分离:将开发、测试和生产等环境通过虚拟主机进行逻辑隔离,各环境使用自己的虚拟主机,确保不同阶段的消息交互不会相互影响。
9.C#代码案例-生产者
public static void SendMessage(){var factory = new ConnectionFactory(){HostName = "40.161.118.219", // 替换为腾讯云轻量服务器公网IPPort = 5672, // RabbitMQ 默认端口UserName = "admin", // 替换为实际用户名Password = "admin123", // 替换为实际密码VirtualHost = "my_vhost", // 默认虚拟主机// 如需SSL加密,添加以下配置:// Ssl = new SslOption { Enabled = true, ServerName = "你的服务器IP" }};using (var connection = factory.CreateConnection())using (var channel = connection.CreateModel()){// 声明队列(如果不存在则创建)channel.QueueDeclare(queue: "hello2",durable: false, // 是否持久化exclusive: false,autoDelete: false,arguments: null);// 发送消息string message = "Hello RabbitMQ from .NET 7!";var body = Encoding.UTF8.GetBytes(message);channel.BasicPublish(exchange: "",routingKey: "hello",basicProperties: null,body: body);Console.WriteLine($" [x] Sent: {message}");}}
10.C#代码案例-消费者
public static void ReceiveMessage()
{var factory = new ConnectionFactory(){HostName = "40.161.118.219", // 替换为腾讯云轻量服务器公网IPPort = 5672, // RabbitMQ 默认端口UserName = "admin", // 替换为实际用户名Password = "admin123", // 替换为实际密码VirtualHost = "my_vhost", // 默认虚拟主机// 如需SSL加密,添加以下配置:// Ssl = new SslOption { Enabled = true, ServerName = "你的服务器IP" }};using (var connection = factory.CreateConnection())using (var channel = connection.CreateModel()){channel.QueueDeclare(queue: "hello",durable: false,exclusive: false,autoDelete: false,arguments: null);var consumer = new EventingBasicConsumer(channel);consumer.Received += (model, ea) =>{var body = ea.Body.ToArray();var message = Encoding.UTF8.GetString(body);Console.WriteLine($" [x] Received: {message}");};channel.BasicConsume(queue: "hello",autoAck: true, // 自动确认消息consumer: consumer);Console.WriteLine(" Press [Enter] to exit.");Console.ReadLine();}
}
11.查看队列信息
相关文章:
RabbitMQ应用(基于腾讯云)
1.防火墙配置 关于RabbitMQ的远程,主要有4个端口需要开通【入站规则】,分别是: 端口 5672:这是 RabbitMQ 的默认 AMQP(Advanced Message Queuing Protocol)端口,用于客户端与 RabbitMQ 服务器之…...
堆和二叉树的概念和操作
目录 1.树的概念 1.1数的表示 1.2二叉树 1.3特殊的二叉树 1.3.1满二叉树 1.3.2完全二叉树 1.3.3 二叉树存储结构 2.堆 2.1堆的实现 初始化和销毁 堆的插入 堆的向上调整算法编辑 编辑 堆的删除 出堆顶 1.树的概念 树是非线性的数据结构,有限节点具有的层…...
互联网大厂Java面试实录:从Spring Boot到微服务架构的技术问答
互联网大厂Java面试实录:从Spring Boot到微服务架构的技术问答 在某互联网大厂的面试现场,严肃的面试官开始了对求职者谢飞机的技术考核。此次面试围绕Java技术栈的应用与场景展开。 第一轮:基础架构与语言 面试官: 请你用简单…...
Rollup、Webpack、Esbuild 和 Vite 前端打包工具
Rollup、Webpack、Esbuild 和 Vite 都是前端开发中常用的打包工具,它们各有特点,以下是对它们的详细对比: 核心功能 Rollup:专注于 JavaScript 模块打包,擅长将小的 JavaScript 模块打包成一个或多个文件,…...
刀客独家 | 潘胜接管百度移动生态市场部
一、 据刀客doc向独家信源确认,百度移动生态事业群(MEG)市场部日前完成重要人事调整:潘胜已经接任市场负责人。 此前,根据雷锋网3月底的报道,百度云渠道生态总经理陈之若离职,原移动生态事业群…...
如何在Chrome浏览器中启用硬件加速【提升浏览器性能】
在使用谷歌浏览器时,硬件加速是提升性能的一个重要功能。它可以将一些计算任务从CPU转移到GPU,从而加速图像处理、视频播放等任务。如果您希望提升浏览器的运行速度,可以通过以下简单步骤启用硬件加速。 1. 打开Chrome浏览器设置 首先&#…...
部署mongodb三幅本集群
背景:原先使用的mongodb采用的是SSPL协议,此协议客户检测到有bug,故需要替换mongodb的版本,原先采用helm部署的mongodb但是无法找到4.1.4版本的chart包,故手写yaml部署 1、部署mongodb-arbiter服务 这个服务是用来选…...
JavaScript 解构赋值(下):对象解构与高级应用
对象解构赋值 基本语法 const person { name: Alice, age: 30 }; const { name, age } person;console.log(name); // Alice console.log(age); // 30别名 const { name: fullName, age: years } person; console.log(fullName); // Alice console.log(years); // 30…...
批量级负载均衡(Batch-Wise Load Balance)和顺序级负载均衡(Sequence-Wise Load Balance)
本文主要比较了批量级负载均衡(Batch-Wise Load Balance)和顺序级负载均衡(Sequence-Wise Load Balance)在 Mixture-of-Experts(MoE)模型训练中的核心区别 。批量级负载均衡通过对整个训练批次的专家负载进行平衡约束,实现了更灵活的均衡策略,有助于专家在不同领域的专…...
什么是EI期刊?EI目录列表如何看?一文查看最新目录+避坑指南
近期有很多人在后台问小编关于EI期刊的各种问题,且前段时间EI期刊目录刚刚更新,小编正好借此,这期仔细给大家介绍一下。 什么是EI期刊? EI期刊也称为工程索引期刊,是供查阅工程技术领域文献的综合性情报检索刊物。每年…...
[创业之路-341]:华为人力资源管理 - 华为技术专家体系详解
华为技术专家体系详解 一、技术专家等级划分 华为技术专家体系以 “专业能力管理贡献” 为双维度,覆盖 19级(技术专家B)至22级(集团核心领导者),其中 19B-20A级 为核心技术专家层级: 19B级&a…...
【HarmonyOS 5】鸿蒙检测系统完整性
【HarmonyOS 5】鸿蒙检测系统完整性 一、前言 从现实安全威胁来看,设备系统完整性风险已影响至移动应用的各个场景。不少用户因使用越狱设备(Jailbreak)或非真实设备(Emulator),导致应用安全防护机制失效…...
量子网络:构建未来通信的超高速“高速公路”
在当今数字化时代,通信技术的飞速发展极大地推动了全球信息的流动和共享。然而,随着数据量的爆炸式增长和对信息安全需求的不断提高,传统通信网络正面临着前所未有的挑战。量子网络作为一种新兴的通信技术,以其超高速传输和绝对安…...
安卓触摸事件分发机制分析
1. 前言 🎯 一句话总结: 触摸事件(TouchEvent)会从 Activity 层开始,按从外到内的方式传递给每一个 ViewGroup/View,直到某个 View 消费(consume) 它,事件传递就会停止…...
Servlet (简单的servlet的hello world程序)
Servlet servlet在20年前左右,是网站开发的一种主力技术. 现在随着时间的推移,Java这个圈子中,逐渐使用spring代替了servlet.现在讲servlet,目的有两个方面. 1.spring作为一个框架.底层仍然是需要调用servlet里的一些api的,包括熟悉servlet有助于理解spring工作原理.包括spr…...
解析 OpenHarmony、HarmonyOS 与 HarmonyOS Next:优雅草卓伊凡的观点
解析 OpenHarmony、HarmonyOS 与 HarmonyOS Next:优雅草卓伊凡的观点 在科技领域,围绕操作系统的讨论从未停歇,其中 OpenHarmony、HarmonyOS 及其后续版本 HarmonyOS Next 备受瞩目。优雅草的卓伊凡对此有着深入见解,在此为大家详…...
Redis03-基础-C#客户端
零、文章目录 Redis03-基础-C#客户端 1、安装NuGet包 dotnet add package Newtonsoft.Json -v 13.0.3 dotnet add package StackExchange.Redis -v 2.8.242、操作帮助类实现 /*** 主题:Redis帮助类 功能:1、设置连接字符串、选择数据库2、String操作…...
JimuBI 积木报表 v1.9.5发布,大屏和仪表盘,免费数据可视化
项目介绍 JimuBI (积木报表BI) 是一款免费的数据可视化产品,含大屏和仪表盘、门户、移动图表,像搭建积木一样完全在线设计! 大屏采用类word风格,可以随意拖动组件,想怎么设计怎么设计,可以像百度和阿里一样…...
有关爬虫中数据库的封装——单线程爬虫
在编写爬虫程序时,数据存储是一个非常重要的环节。尤其是在单线程爬虫中,虽然并发量不大,但如果每次操作数据库都直接连接、查询、关闭,不仅代码臃肿,还容易出错,甚至影响爬虫的稳定性。 因此,…...
React19 useOptimistic 用法
用法 乐观更新 发起异步请求时,先假设请求会成功立即更新 UI 给用户反馈若请求最终失败,再将 UI 恢复到之前的状态 const [optimisticState, addOptimistic] useOptimistic(state, updateFn) 参数 state:实际值,可以是 useSta…...
简单的 shell 程序
整体思路 一个简单的 shell 程序的工作流程如下: 初始化环境:在启动时从系统获取环境变量。循环等待用户输入:不断输出命令行提示符,等待用户输入命令。解析命令:把用户输入的命令解析成可执行的格式。执行命令&…...
MIT XV6 - 1.1 Lab: Xv6 and Unix utilities - sleep
接上文 MIT XV6 - 1. 环境准备 实验正文 打开实验链接 Lab: Xv6 and Unix utilities ,可以看到他一共有6个小实验(头大,让我们争取日拱一卒吧…): Boot xv6 (easy)sleep (easy)pingpong (easy)primes (moderate)/(hard)find (moderate)xargs (moderate…...
测地型GNSS接收机_毫米高精度精准定位
在建筑安全、地灾监测、大坝桥梁隧道监测、工程测绘、国土规划等专业领域,传统工具效率低、精度差、环境适应性弱的痛点长期存在。计讯物联测地型GNSS接收机以毫米级精度、全场景适应、智能互联为核心优势,重新定义高精度空间数据采集标准&#…...
React19源码系列之 root.render过程
在创建react项目的时候,入口文件总是有这样一行代码 root.render(<App />) 所以 root.render() 执行是怎样的? 下面就来看看。 之前的文章就提及,root是一个 ReactDOMRoot 对象,其原型链上有 render 和 unmount 方法。 ReactDOMHy…...
0804标星_复制_删除-网络ajax请求2-react-仿低代码平台项目
文章目录 1 标星2 复制3 假删除4 恢复5 彻底删除结语 1 标星 操作:标星和取消标星,有2种状态的布尔值。通过更新问卷功能实现。 后端quetion.js添加接口 {// 更新问卷信息url: /api/question/:id,method: patch,response() {return {errno: 0}}},前端q…...
二叉树遍历(C语言版)
前序遍历创建树,中序遍历把创建出来的二叉树的结点打印出来 题目链接:牛客网-二叉树遍历 前序遍历创建树的思想: 把每个结点看作是子树的根节点,以根左右的顺序创建一整棵二叉树 1.空 返回空 2.非空 先是malloc一个结点ÿ…...
OceanBase数据库-学习笔记2-C#/C++程序如何访问
MySQL模式下,程序(C#)连接数据库操作demo SqlSugar public class MainModel {private static readonly ConnectionConfig connectionConfig new ConnectionConfig(){ConnectionString "serverxxx.xxx.xxx.xxx;port2881;user idroot;…...
Python中的Walrus运算符分析
Python中的Walrus运算符(:)是Python 3.8引入的一个新特性,允许在表达式中同时赋值和返回值。它的核心作用是减少重复计算,提升代码简洁性。以下是其适用的典型场景及示例: 1. 在循环中避免重复计算 当循环条件需要多次…...
【深度好文】4、Milvus 存储设计深度解析
引言 作为一款主流的云原生向量数据库,Milvus 通过其独特的存储架构设计来保证高效的查询性能。本文将深入剖析 Milvus 的核心存储机制,特别是其最小存储单元 Segment 的完整生命周期,包括数据写入、持久化、合并以及索引构建等关键环节。 …...
航顺 芯片 开发记录 (一) 2025年4月27日19:23:32
芯片型号: HK32F030MF4P6 第一步:创建工程目录 inc :头文件目录 MDK-ARM : 工程根目录 (新建工程选择该目录) src :相关资源存放位置 官方函数库相关内容 官方函数库大致结构图 ├─HK32F030MLib ├─CMSIS │ ├─CM0 │ │ └─Core │ │ arm_common_table…...
Java 设计模式
Java后端常用设计模式总览表 模式核心思想Spring / Spring Boot应用手写实现核心单例模式 (Singleton)一个类只有一个实例,提供全局访问点Spring容器中的默认Bean都是单例管理volatile synchronized 双重检查锁定,懒加载单例工厂模式 (Factory)统一管理…...
Milvus如何实现关键词过滤和向量检索的混合检索
Milvus 可以实现关键词过滤和向量检索的混合检索,具体来说,可以结合向量搜索与其他属性字段(如关键词、类别标签等)进行联合查询。这样,在检索时不仅考虑向量的相似度,还能根据特定的关键词或标签等条件对数据进行筛选,从而提高检索的精度和灵活性。 1. 理解混合检索的…...
基于Qt5的蓝牙打印开发实战:从扫描到小票打印的全流程
文章目录 前言一、应用案例演示二、开发环境搭建2.1 硬件准备2.2 软件配置 三、蓝牙通信原理剖析3.1 实现原理3.2 通信流程3.3 流程详解3.4 关键技术点 四、Qt蓝牙核心类深度解析4.1 QBluetoothDeviceDiscoveryAgent4.2 QBluetoothDeviceInfo4.3 QBluetoothSocket 五、功能实现…...
Linux日志处理命令多管道实战应用
全文目录 1 日志处理1.1 实时日志分析1.1.1 nginx日志配置1.1.2 nginx日志示例1.1.3 日志分析示例 1.2 多文件合并分析1.3 时间范围日志提取 2 问题追查2.1 进程级问题定位2.2 网络连接排查2.3 硬件故障追踪 3 数据统计3.1 磁盘空间预警3.2 进程资源消耗排名3.3 HTTP状态码统计…...
Node.js CSRF 保护指南:示例及启用方法
解释 CSRF 跨站请求伪造 (CSRF/XSRF) 是一种利用用户权限劫持会话的攻击。这种攻击策略允许攻击者通过诱骗用户以攻击者的名义提交恶意请求,从而绕过我们的安全措施。 CSRF 攻击之所以可能发生,是因为两个原因。首先,CSRF 攻击利用了用户无法辨别看似合法的 HTML 元素是否…...
线性代数—向量与矩阵的范数(Norm)
参考链接: 范数(Norm)——定义、原理、分类、作用与应用 - 知乎 带你秒懂向量与矩阵的范数(Norm)_矩阵norm-CSDN博客 什么是范数(norm)?以及L1,L2范数的简单介绍_l1 norm-CSDN博客 范数(Norm…...
微服务基础-Ribbon
1. Ribbon简介: 客户端的负载均衡: 2....
移除生产环境所有console.log
大多数团队都会要求不能在生产环境输出业务侧的内容,但是往往业务开发人员会有疏漏,所以需要在工程化环境中,整体来管理console.log。我最近也是接到这样一个需求,整理了一下实现方案。 不同团队,不同场景,…...
数字人接大模型第二步:实时语音同步
接上例第一步,还是dh_live项目,增加了一个完整的实时对话样例,包含vad-asr-llm-tts-数字人全流程,以弥补之前的只有固定的问答的不足。 VAD(Voice Activity Detection,语音活动检测)VAD用于检测用户是否正在说话,从而触发后续的语音处理流程。 ASR(Automatic Speech R…...
Tomcat的安装与配置
Tomcat Tomcat是一个Java圈子中广泛使用的HTTP服务器. 后续学习Severlet内容,就是依赖Tomcat. Java程序员,要想写个网站出来,绕不开Tomcat. 我们这里使用Tomcat8 在bin目录下,这两个文件尤为重要,需要说明的是,Tomcat是那Java写的,所以在运行时需要jdk. bat后缀:是Window…...
Spring AI Alibaba - MCP连接 MySQL
先看效果 直接问他数据库有什么表。 大模型调用MySQL进行查询 搭建项目 添加依赖 创建项目后新添加Maven 依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> …...
Spring Cloud Stream喂饭级教程【搜集全网资料整理】
文章较长,建议收藏关注,随时查看 Spring Cloud Stream 简介 Spring Cloud Stream 是 Spring 提供的一个框架,用于构建与共享消息系统相连接的高度可伸缩的事件驱动微服务,它建立在 Spring 已有的成熟组件和最佳实践之上ÿ…...
prometheus手动添加k8s集群外的node-exporter监控
1、部署node-exporter 1)helm方式部署 rootiZj6c72dzbei17o2cuksmeZ:~# helm repo add prometheus-community https://prometheus-community.github.io/helm-charts "prometheus-community" has been added to your repositories rootiZj6c72dzbei17o2cu…...
Linux(Centos版本)中安装Docker
文章目录 Linux(Centos版本)中安装Docker整体流程 Linux(Centos版本)中安装Docker整体流程 进入root权限进行安装: 下面开始安装Docker: 1、安装docker的yum管理工具:记得将yum仓库更改为国内的镜像源&…...
C语言-- 深入理解指针(4)
C语言-- 深入理解指针(4) 一、回调函数二、冒泡排序三、qsort函数3.1 使用qsort函数排序整型数据3.2 使用qsort函数排序double数据3.3 使用qsort来排序结构体数据 四、模仿qsort库函数实现通用的冒泡排序4.1 通用冒泡排序函数排序整型数据4.2 通用冒泡排…...
牟乃夏《ArcGIS Engine地理信息系统开发教程》学习笔记3-地图基本操作与实战案例
目录 一、开发环境与框架搭建 二、地图数据加载与文档管理 1. 加载地图文档(MXD) 2. 动态添加数据源 三、地图浏览与交互操作 1. 基础导航功能 2. 书签管理 3. 量测功能 四、要素选择与属性查询 1. 属性查询 2. 空间查询 五、视图同步与鹰眼…...
Spark Streaming实时数据处理实战:从DStream基础到自定义数据源集成
park-Streaming概述 Spark-Streaming是什么 Spark Streaming 用于流式数据的处理。Spark Streaming 支持的数据输入源很多,例如:Kafka、Flume、Twitter等,以及和简单的 TCP 套接字等等。数据输入后可以用 Spark 的高度抽象原语如:…...
微软GraphRAG的安装和在RAG中的使用体会
文章目录 0. 简介(1)**技术原理**(2)**优势**(3)**开源与演进** 1. 下载graphrag.git2.安装 poetry3.初始化项目:建立cases目录4. 修改.env5.修改settings.yaml,将两处 api_base改成中转站地址:…...
Python学习记录7——集合set()的使用指南
文章目录 引言一、集合特性二、创建方式三、元素操作1、添加元素(1)add(element)(2)update(iterables) 2、删除元素(1)remove(element)(2)discard(element)(3)…...
apkpure 谷歌插件 下载的apk包
谷歌插件市场搜索 apkpure 然后直接搜索下载就行了 想看apk包中的静态资源,直接改apk 为zip后缀解压就行了 apple的ipa包也是相同的道理...