• RabbitMQ消息队列服务器与集群管理实践

RabbitMQ消息队列服务器与集群管理实践

2025-05-06 23:00:11 0 阅读

本文还有配套的精品资源,点击获取

简介:RabbitMQ是一款基于AMQP协议的开源消息代理服务器,用于构建可扩展和高可用的分布式系统。版本3.7.8提供了稳定的高性能服务,适用于多业务场景。本指南将详细介绍RabbitMQ的关键功能,包括AMQP协议、消息模型、虚拟主机、节点与集群配置、管理界面、安全机制、插件系统、消息持久化、死信队列、TTL与过期消息处理、高并发优化以及多语言客户端库的使用。同时,提供"rabbitmq-server3.7.8.exe"的安装指南,帮助用户在Windows环境下快速部署和管理RabbitMQ服务器。

1. AMQP协议应用与客户端集成

在这一章中,我们将深入探讨高级消息队列协议(AMQP)的应用及其与客户端的集成方法。首先,我们需要了解AMQP的前世今生,它是如何作为消息传递协议的,以及其在企业级应用中的地位。随后,我们将引导你如何选择合适的客户端库来集成AMQP,这不仅包括Java、C#等传统编程语言,还包括JavaScript、Python等现代开发语言的客户端库。接着,我们将介绍客户端集成的基本流程和最佳实践,以及如何通过集成来实现高效、可靠的通信。最后,我们将讨论在集成过程中可能遇到的一些常见问题和解决方案。

AMQP核心概念解读

AMQP(Advanced Message Queuing Protocol)是一种网络协议,用于在不同的平台和应用程序之间安全、可靠地传递消息。作为开放标准的消息协议,它允许系统之间通过标准化的方式进行通信,无需关注底层网络协议。AMQP模型主要由交换器(Exchanges)、队列(Queues)、绑定(Bindings)和消息(Messages)等概念构成。

选择合适的客户端库

根据你的技术栈和项目需求,选择合适的AMQP客户端库是至关重要的一步。不同的编程语言通常有多个客户端库可供选择,例如:

  • Java : RabbitMQ Java客户端、Qpid JMS Client
  • Python : pika
  • C# : RabbitMQ .NET Client
  • JavaScript : RabbitMQ JavaScript Client

这些客户端库有的是官方推荐的,有的则可能拥有额外的特性或社区支持。你可能需要根据具体的项目需求,比如性能要求、社区活跃度、文档支持等因素,来决定选择哪一个。

客户端集成流程

集成AMQP客户端到你的应用程序通常包含以下几个步骤:

  1. 引入客户端库 : 将选定的AMQP客户端库作为项目依赖引入。
  2. 建立连接 : 编写代码建立到消息代理(如RabbitMQ服务器)的连接。
  3. 声明交换器和队列 : 根据消息路由策略声明必要的交换器和队列。
  4. 配置绑定 : 将队列和交换器通过绑定关系连接起来,定义消息路由规则。
  5. 发送和接收消息 : 实现消息的发送和接收逻辑,根据业务需求进行同步或异步处理。
import pika

# 连接到RabbitMQ服务器
connection = pika.BlockingConnection(
    pika.ConnectionParameters('localhost')
)
channel = connection.channel()

# 声明交换器和队列
channel.exchange_declare(exchange='logs', exchange_type='fanout')
result = channel.queue_declare('', exclusive=True)
queue_name = result.method.queue

# 绑定队列到交换器
channel.queue_bind(exchange='logs', queue=queue_name)

# 发送消息
channel.basic_publish(exchange='logs',
                      routing_key='',
                      body='Hello World!')

# 关闭连接
connection.close()

集成过程中可能会遇到网络问题、认证问题、权限问题等,都需要在编码过程中加以注意和处理。通过以上步骤,你可以将AMQP客户端成功集成到你的应用程序中,并开始利用消息队列的强大功能。

2. 多种消息模型的实现机制

在本章中,我们将深入探讨RabbitMQ中实现不同消息模型的机制,以及每种模型的应用场景和实现步骤。

2.1 点对点消息模型

2.1.1 模型的工作原理

点对点消息模型是消息队列中最基本的通信模型。在这种模型中,生产者发送消息到队列,消费者从队列中获取消息进行处理。每个消息在成功地传递给消费者之后即从队列中移除,确保消息只会被消费一次。

工作流程可以用下面的步骤来描述: 1. 生产者创建消息,并将其发送到指定的队列中。 2. 队列将接收到的消息存储起来,直到有消费者来接收。 3. 消费者连接到队列,并请求消息。 4. 队列将消息推送给消费者,并在成功传输后将其从队列中移除。 5. 消费者接收消息,并进行相应的业务处理。

这种模型适用于任务分发和工作队列场景,其中任务需要依次处理,并且每个任务只需要处理一次。

2.1.2 实际应用场景

在实际应用中,点对点模型可以被广泛应用于后台任务处理、邮件系统、消息通知等多种场景。举个例子,电商平台中的订单处理系统会使用这种模型来逐个处理用户提交的订单信息。订单信息被生产者发送到特定的订单处理队列中,消费者(如订单服务)从队列中取出订单并执行后续处理流程。

2.2 发布/订阅消息模型

2.2.1 模型的特性与机制

发布/订阅模型允许生产者将消息广播给多个消费者。在这个模型中,消息生产者将消息发送给交换机,交换机再根据绑定关系将消息分发给一个或多个队列。每个队列可以拥有多个消费者。

特点和机制包括: 1. 交换机负责接收生产者发送的消息,并根据预设的规则(绑定键)将消息路由到对应的队列。 2. 绑定键用于队列声明时和交换机建立绑定关系,生产者在发送消息时需要指定消息的路由键。 3. 消息会根据路由键与绑定键的匹配情况,被分发到一个或多个队列中。

这种模型适合于需要多方订阅,例如日志系统、实时数据广播等场景。

2.2.2 实现发布/订阅的步骤

下面是发布/订阅消息模型的基本实现步骤:

  1. 创建交换机 :使用RabbitMQ的管理界面或命令行工具创建一个交换机,例如类型为 fanout 的交换机。 bash rabbitmqadmin declare exchange name=my_fanoutExchange type=fanout
  2. 创建队列 :为每个消费者创建一个队列,并绑定到交换机上。 bash rabbitmqadmin declare queue name=my_queue rabbitmqadmin bind queue my_queue exchange my_fanoutExchange routing_key=
  3. 生产者发布消息 :生产者发送消息到交换机上。 python channel.basic_publish(exchange='my_fanoutExchange', routing_key='', body='Hello World!', properties=pika.BasicProperties DeliveryMode=2))
  4. 消费者接收消息 :消费者监听绑定的队列接收消息。 python def callback(ch, method, properties, body): print(" [x] Received %r" % body) channel.basic_consume(queue='my_queue', on_message_callback=callback, auto_ack=True) channel.start_consuming()

这个模型使得消息的发送与消费解耦,提高了系统的灵活性和可伸缩性。

2.3 请求/应答消息模型

2.3.1 模型的流程与优势

请求/应答模型是点对点模型的变体,其工作流程包括生产者发送消息并期望得到回应(请求-应答),和消费者处理消息后回复一个应答(响应)。此模型适用于需要请求/响应交互的场景,如远程过程调用。

流程优势: 1. 适合同步通信,确保请求和响应一一对应。 2. 生产者可以等待应答,或设置超时时间。 3. 有利于实现幂等性和事务性。

2.3.2 如何在RabbitMQ中实现

在RabbitMQ中实现请求/应答模型的步骤如下:

  1. 创建消息队列 :创建一个用于请求和应答消息的队列。
  2. 消费者订阅队列 :消费者监听队列并处理接收到的请求消息。
  3. 生产者发送请求并监听应答 :生产者发送请求消息到队列,并设置回调等待消费者的应答消息。

以下是一个使用Python代码示例:

# 生产者发送消息并等待应答
def on_response(ch, method, properties, body):
    if body == "Hello World!":
        print(" [.] Message received")
    else:
        print(" [.] Unknown message")

channel.basic_publish(exchange='',
                      routing_key='rpc_queue',
                      properties=pika.BasicProperties(
                          reply_to='req_queue',
                          correlation_id='corr_id'
                      ),
                      body='Hello World!'
                      )
channel.basic_consume(queue='req_queue',
                      on_message_callback=on_response,
                      auto_ack=True
                      )
print(" [x] Awaiting RPC requests")
channel.start_consuming()

# 消费者接收请求并发送应答
def fib(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fib(n - 1) + fib(n - 2)

def on_request(ch, method, props, body):
    n = int(body)
    print(" [.] fib(%s)" % n)
    response = fib(n)
    ch.basic_publish(exchange='',
                      routing_key=props.reply_to,
                      properties=pika.BasicProperties(correlation_id=props.correlation_id),
                      body=str(response)
                      )
    ch.basic_ack(delivery_tag=method.delivery_tag)

channel.basic_consume(queue='rpc_queue', on_message_callback=on_request)
print(" [x] Awaiting RPC requests")
channel.start_consuming()

这个过程体现了请求/应答模型的典型用法,生产者发送请求并等待应答,消费者处理请求后发送应答。

3. 虚拟主机(Vhosts)的资源隔离

3.1 Vhosts的基本概念与作用

虚拟主机(Virtual Hosts,简称 Vhosts)在RabbitMQ中是一种用于提供资源隔离的机制,每个虚拟主机都是一个独立的RabbitMQ服务器的映射。在RabbitMQ中,虚拟主机被用来划分不同的消息系统,它们包含自己的交换器(exchanges)、队列(queues)、绑定(bindings)和用户(users),这一切都是独立于其他虚拟主机的。

从概念上讲,Vhosts类似于网络中的虚拟局域网(VLAN),它提供了一个逻辑分区,允许不同应用、客户或业务部门在同一个RabbitMQ实例中运行,而无需担心相互之间的干扰。这对于云环境和多租户环境尤其有用,可以确保消息队列资源的合理分配和安全性。

每个Vhost都拥有自己的权限控制,可以配置不同的访问策略,为不同的用户提供定制化的访问权限。这对于大型组织而言,意味着可以精确地控制谁可以连接到特定的消息服务,以及他们可以执行什么操作。

Vhosts的作用包括但不限于:

  1. 资源隔离 :在同一个RabbitMQ服务器上,可以创建多个Vhosts,它们之间互不干扰,保证了消息系统的独立性和安全性。
  2. 访问控制 :为不同的Vhost配置不同的用户和角色,可以实现对消息系统的细粒度访问控制。
  3. 环境划分 :可以将开发、测试和生产环境分别设置在不同的Vhosts中,以防止测试环境中的消息流入生产环境,造成数据混乱。

3.2 如何创建与管理Vhosts

创建和管理Vhosts对于RabbitMQ的日常运营来说是基本技能。RabbitMQ提供了命令行接口(CLI)以及Web管理界面两种方式来管理Vhosts。

使用CLI创建Vhost的步骤如下:
  1. 打开命令行界面。
  2. 使用RabbitMQ管理命令添加新的Vhost: sh rabbitmqctl add_vhost 其中 是您想要创建的Vhost的名称。
为Vhost添加用户并设置权限的示例:

sh rabbitmqctl set_user_tags administrator rabbitmqctl set_permissions -p ".*" ".*" ".*" 在这段代码中, 是您要赋予权限的用户名, 是之前创建的Vhost的名称。此命令将为指定用户赋予对所有资源的完全访问权限。

使用Web管理界面管理Vhosts

用户也可以通过RabbitMQ的Web管理界面来创建和管理Vhosts:

  1. 访问RabbitMQ管理界面。
  2. 选择“Virtual Hosts”菜单项。
  3. 点击“Add a new vhost”按钮,输入Vhost的名称并提交。

此外,用户还可以在Web界面中设置权限、查看Vhosts的状态和资源使用情况等。

3.3 Vhosts在资源隔离中的实际应用

在实际应用中,Vhosts可以用于多种不同的场景。例如,在一个公司内部,不同的项目团队可以分配到不同的Vhosts中。开发团队可以使用自己的Vhost进行开发和测试,而不会影响到生产环境。同时,还可以针对每个Vhost分配不同的资源配额,如内存和磁盘使用上限,以确保关键业务不受非关键业务的影响。

在微服务架构中,每个微服务都可以对应一个Vhost,服务之间的消息传递可以通过交换器和队列在自己的Vhost中独立进行,这样不仅保证了消息的隔离,也便于日后的维护和扩展。

总的来说,虚拟主机(Vhosts)作为RabbitMQ的一个重要功能,为构建可靠和可扩展的消息传递系统提供了一个强大的资源隔离机制。掌握Vhosts的创建、管理和优化,是确保消息服务高效运行的关键。

4. 节点和集群的配置与高可用性

4.1 RabbitMQ节点的配置方法

在分布式系统中,RabbitMQ节点的配置是实现高性能和高可用性的基础。配置RabbitMQ节点包括了设置内存和磁盘使用限额、调整队列和交换器的参数、以及设置网络相关的参数等。首先,我们需要了解配置文件 rabbitmq.config 的基本结构和常用配置项。例如,我们可以设置节点名称和默认的Vhost,如下所示:

[{rabbit, [{node, rabbit@localhost},
           {default_vhost, <<"/">>},
           {default_user, <<"guest">>},
           {default_pass, <<"guest">>}]}].

节点名称需要在集群中是唯一的,通常格式为 rabbit@hostname 。接着,我们设置内存和磁盘的使用限额,避免因为资源耗尽导致节点宕机。这里可以通过调整 total_memory_available_override_value 来设置内存的使用上限,单位是字节:

[{rabbit, [{memory_monitor_interval, 2000},
           {total_memory_available_override_value, 4294967296}]}].

对于磁盘的使用限额,RabbitMQ提供了 disk_free_limit 参数,当可用磁盘空间低于此值时,会触发磁盘警告,并可能停止接受消息:

[{rabbit, [{disk_free_limit, {mem_relative, 1.5}}]}].

这里的 mem_relative 指相对于物理内存的比例,确保即便在物理资源有限的环境下,也能合理地使用磁盘资源。

4.2 集群的搭建步骤与注意事项

RabbitMQ集群能够提供更高的可用性和容错能力。搭建集群的基本步骤包括:

  1. 确保所有节点的Erlang Cookie文件是一致的,否则节点之间无法通信。
  2. 在所有节点上分别启动RabbitMQ服务。
  3. 选择一个节点作为初始节点,使用 rabbitmqctl 命令加入集群。
  4. 将其他节点也依次加入到集群中。

例如,在节点A上执行以下命令将节点B加入到集群:

rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@B
rabbitmqctl start_app

在集群配置完成后,需要注意以下事项:

  • 网络分区的处理: 确保集群内的网络是可靠的,避免因网络分区导致集群性能下降。
  • 数据同步: RabbitMQ使用内存中的镜像队列来实现高可用性,因此需确保数据同步的及时性和可靠性。
  • 资源限制: 集群中节点的资源限制应保持一致,以避免因为资源不均导致的性能瓶颈。
  • 备份与恢复: 定期对集群进行备份,并测试恢复流程确保数据安全。

4.3 高可用性解决方案的设计

在设计RabbitMQ的高可用性解决方案时,除了使用集群和镜像队列之外,还需要考虑如何应对整个数据中心的故障。解决方案通常包括以下几个方面:

  • 负载均衡: 使用负载均衡器来分散请求,确保不会因为单个节点的压力过大导致整个服务不可用。
  • 故障转移: 配置高可用的负载均衡器和外部消息代理来实现故障自动转移。
  • 数据备份: 定期备份RabbitMQ的数据和配置文件,以便在灾难发生时能够快速恢复服务。

此外,可以结合RabbitMQ插件系统,使用如 rabbitmq_mqtt rabbitmq_web_mqtt 这样的插件来实现消息队列的冗余和负载均衡。这些插件支持多种协议,可以和不同的客户端库进行集成,形成更为复杂的高可用架构。

构建高可用的RabbitMQ集群是一个涉及多方面的复杂过程,需要综合考虑硬件、软件、网络以及运维的各个因素,实现一个健壮、可靠且具备良好伸缩性的消息系统架构。

5. 管理界面的使用与监控

管理界面是RabbitMQ提供给用户的一个图形化操作工具,它使得用户能够更加直观和便捷地管理RabbitMQ服务器。通过对管理界面的熟练使用,系统管理员可以高效地进行资源分配、监控系统状态、设置用户权限等。

5.1 管理界面的访问与操作

访问RabbitMQ管理界面的第一步是确保管理插件已经开启。RabbitMQ默认不会启动管理插件,因此需要手动开启。

rabbitmq-plugins enable rabbitmq_management

开启管理插件后,通过访问 http://localhost:15672 (服务器IP地址和端口号可能根据配置有所不同)来访问管理界面。首次登录时,需要使用RabbitMQ服务器上的默认账户信息进行登录。登录成功后,可以看到管理界面的主界面。

管理界面的主界面由以下几个主要部分组成:

  1. 概览 - 显示节点的总体状态,包括连接数、信道数、队列数、交换器数和交换器绑定数等。
  2. 连接 - 列出所有连接到RabbitMQ服务器的客户端连接。
  3. 信道 - 列出所有打开的信道信息。
  4. 队列 - 显示所有队列的详细信息。
  5. 交换器 - 显示所有交换器的详细信息及绑定关系。

通过这些部分的界面,管理员可以对RabbitMQ服务器进行实时监控、手动创建和删除资源、修改权限等操作。

5.2 系统监控指标解读

RabbitMQ提供了丰富的监控指标,管理员应该了解每个指标的含义和它们在性能优化中的作用。

  1. 连接数 - 监控当前与RabbitMQ节点连接的客户端数量。
  2. 信道数 - 信道是RabbitMQ中最基本的通信通道,监控信道数量可以帮助评估消息吞吐量。
  3. 消息速率 - 包括生产速率和消费速率,有助于分析消息流量的快慢。
  4. 队列状态 - 显示每个队列的长度、消息数和消费者数量,反映了系统的当前负载。
  5. 交换器和绑定 - 展示所有交换器的状态及它们之间的绑定关系。

这些指标可以帮助系统管理员了解当前RabbitMQ的健康状态,做出及时调整。例如,如果发现某个队列的长度持续增长,可能意味着存在生产者速度过快或消费者速度过慢的问题。

5.3 监控告警设置与维护

监控告警的设置可以帮助管理员在问题出现时及时收到通知,避免因延迟发现而导致的系统故障。

在管理界面的"设置"菜单下,可以配置告警。RabbitMQ允许用户设置告警的触发条件,如连接数超过阈值、队列长度超过设定值等。一旦触发条件满足,系统会通过邮件、短信或自定义通知等方式提醒管理员。

{
    "name": "critical_queue_length",
    "vhost": "/",
    "queue": "critical_queue",
    "perSECOND": 100,
    "perMinute": 500,
    "perHour": 1000,
    "perDay": 10000
}

上述JSON配置片段展示了如何设置一个队列长度告警。管理员可以根据实际需要配置告警的级别和频率。

值得注意的是,告警功能在提升系统稳定性和响应速度方面起到了关键作用。管理员应该根据实际情况设置合理的告警阈值,避免过多的误报,同时也要确保重要的事件不会被忽视。

6. 用户认证与权限控制的安全机制

6.1 用户与角色的创建与管理

用户是访问RabbitMQ系统的主体,而角色是分配给用户的一组权限集合。在RabbitMQ中,用户和角色的创建与管理是保证系统安全的基础。以下详细介绍如何在RabbitMQ中创建和管理用户与角色。

创建用户

在RabbitMQ中,可以通过 rabbitmqctl 命令行工具或管理界面来创建用户。使用 rabbitmqctl 创建用户的基本命令格式如下:

rabbitmqctl add_user username password

其中 username password 分别为新用户的用户名和密码。例如,创建一个用户名为 john ,密码为 john123 的用户:

rabbitmqctl add_user john john123

管理用户

创建用户后,可能需要修改用户的密码或者删除用户。修改用户密码的命令为:

rabbitmqctl change_password username newpassword

删除用户的命令为:

rabbitmqctl delete_user username

角色的创建与权限分配

角色是一个抽象概念,它由一系列权限组成,可以分配给用户。创建角色的命令如下:

rabbitmqctl add_cluster_permission role_name
rabbitmqctl add_vhost_permission role_name vhost_name

其中 role_name 为角色名称, vhost_name 为虚拟主机名称。权限是指定角色可以对哪些虚拟主机进行何种操作。

角色的权限分为以下几种:

  • configure :配置权限,允许用户更改虚拟主机的配置。
  • write :写权限,允许用户向虚拟主机发送消息。
  • read :读权限,允许用户从虚拟主机接收消息。

例如,创建一个名为 management 的角色,并赋予其 vhost1 虚拟主机的读写权限:

rabbitmqctl set_user_tags management administrator
rabbitmqctl set_permissions -p vhost1 management ".*" ".*" ".*"

用户和角色的管理界面操作

除了命令行工具,用户和角色的管理还可以通过RabbitMQ管理界面进行,通过访问 http://localhost:15672/#/users ,使用管理员账号登录后,可以直观地添加、删除用户,为用户分配角色,以及查看用户的角色和权限信息。

6.2 权限控制策略的配置

权限控制是RabbitMQ安全管理的重要部分。正确的权限控制策略能够有效防止未授权访问,保证消息系统的安全。

权限控制策略的构成

在RabbitMQ中,权限控制策略通常由三部分组成: configure write read 。具体解释如下:

  • configure :允许配置虚拟主机,例如添加或删除交换器和队列。
  • write :允许向虚拟主机发送消息,即向交换器发布消息。
  • read :允许从虚拟主机接收消息,即从队列中消费消息。

权限控制策略的配置步骤

使用 rabbitmqctl 命令配置权限控制策略的步骤如下:

  1. 首先为用户创建角色,如果需要。
  2. 使用 rabbitmqctl set_permissions 命令为用户分配权限。
rabbitmqctl set_permissions -p vhost_name username "regex" "regex" "regex"

参数解释:

  • vhost_name :虚拟主机名称。
  • username :需要设置权限的用户名。
  • regex :正则表达式,用于匹配交换器名称(第一个)和队列名称(后两个)。

例如,为用户 john vhost1 虚拟主机上设置权限,允许读写所有交换器和队列:

rabbitmqctl set_permissions -p vhost1 john ".*" ".*" ".*"

权限控制策略的管理界面操作

通过管理界面设置用户权限,可以更加直观和方便:

  1. 访问 http://localhost:15672/#/permissions ,使用管理员账号登录。
  2. 在“Virtual Host”下拉菜单中选择相应的虚拟主机。
  3. 点击“Add a new permission”,输入用户信息和权限表达式。
  4. 点击“Add”保存权限设置。

6.3 安全机制的重要性与实际应用

在使用消息队列时,安全机制是至关重要的。它能够有效防止数据泄露、非法访问,确保系统的稳定运行。

安全机制的重要性

  • 数据安全 :消息队列常用于处理敏感信息,如用户数据、交易记录等。不当的安全策略会导致信息泄露。
  • 系统稳定 :恶意访问或攻击可能导致消息队列服务不可用,影响整个系统的运行。
  • 合规要求 :根据行业规范和法律法规要求,必须实现对消息系统的安全控制。

安全机制的实际应用

在实际应用中,用户应根据自己的业务需求,对安全策略进行定制化配置。例如:

  • 设置强密码 :为所有用户设置符合安全要求的强密码。
  • 最小权限原则 :为用户仅提供完成工作所需的最小权限。
  • 使用角色管理 :通过角色分配和管理权限,使得权限的变更更为方便和统一。
  • 定期审计 :定期检查和审计用户权限,对不再需要的权限及时清理。
  • 网络隔离 :在可能的情况下,对管理界面进行网络隔离,限制访问。

通过这些措施,可以构建一个安全、可靠的RabbitMQ消息队列环境。

7. 插件系统的扩展功能

RabbitMQ是一个开源消息代理软件,也称为消息中间件,它实现了高级消息队列协议(AMQP)。为了满足特定场景的需求,RabbitMQ提供了丰富的插件系统,允许用户安装和管理额外的功能。这些插件可以用来增强消息队列的功能,如消息追踪、Web管理界面、安全性增强等。

7.1 插件系统概述与安装

RabbitMQ的插件系统被设计为简单易用,且易于扩展。所有官方和社区提供的插件都可以通过RabbitMQ管理命令进行安装、升级和卸载。

安装插件的基本命令

安装插件前,首先需要确认RabbitMQ服务正在运行。以下是一个安装插件的典型命令:

rabbitmq-plugins enable 

例如,如果您想启用管理插件,命令如下:

rabbitmq-plugins enable rabbitmq_management

插件一旦启用,就可以通过RabbitMQ的HTTP API或者Web管理界面与之交互。

7.2 常用扩展插件介绍

RabbitMQ社区提供了多种插件,以满足不同的业务需求。以下是一些常用插件:

  • rabbitmq_management : 提供基于Web的管理界面和HTTP API。
  • rabbitmq_management_agent : 用于收集和暴露各种统计信息。
  • rabbitmq_federation : 实现了联邦队列插件,用于提高RabbitMQ集群的可靠性和可伸缩性。
  • rabbitmq_shovel : 提供一种机制,用于在不同的RabbitMQ节点或集群之间传输消息。

7.3 插件的自定义与开发入门

对于需要定制功能的用户,RabbitMQ的插件开发入门相对简单。用户可以通过阅读官方文档,了解插件的架构和API来开发自己的插件。

开发步骤

  1. 设置开发环境 : 安装Erlang和RabbitMQ。
  2. 创建插件骨架 : 使用RabbitMQ提供的工具创建插件骨架。
  3. 编码 : 编写插件代码,添加所需的业务逻辑。
  4. 编译和测试 : 编译插件并进行单元测试。
  5. 打包 : 将编译好的插件打包,准备发布或部署。

示例代码

下面是一个简单的插件插件代码示例,展示了如何定义一个新的插件模块:

-module(my_plugin).
-author("Your Name").
-vsn("0.1").

-behaviour(application).

-export([start/2, stop/1]).

start(normal, []) ->
    my_plugin_sup:start_link().

stop(_State) ->
    ok.

这个模块定义了一个应用程序行为,这是所有RabbitMQ插件的基础。

通过以上的步骤和示例代码,可以开始自己的插件开发之旅。随着经验的积累,可以开发出更为复杂和功能丰富的插件,以提升RabbitMQ的功能性和性能。

本文还有配套的精品资源,点击获取

简介:RabbitMQ是一款基于AMQP协议的开源消息代理服务器,用于构建可扩展和高可用的分布式系统。版本3.7.8提供了稳定的高性能服务,适用于多业务场景。本指南将详细介绍RabbitMQ的关键功能,包括AMQP协议、消息模型、虚拟主机、节点与集群配置、管理界面、安全机制、插件系统、消息持久化、死信队列、TTL与过期消息处理、高并发优化以及多语言客户端库的使用。同时,提供"rabbitmq-server3.7.8.exe"的安装指南,帮助用户在Windows环境下快速部署和管理RabbitMQ服务器。

本文还有配套的精品资源,点击获取

本文地址:https://www.vps345.com/8755.html

搜索文章

Tags

PV计算 带宽计算 流量带宽 服务器带宽 上行带宽 上行速率 什么是上行带宽? CC攻击 攻击怎么办 流量攻击 DDOS攻击 服务器被攻击怎么办 源IP 服务器 linux 运维 游戏 云计算 ssh javascript 前端 chrome edge 英语 ubuntu 数据库 centos oracle 关系型 安全 分布式 Ubuntu 开发环境 阿里云 网络 网络安全 网络协议 llama 算法 opencv 自然语言处理 神经网络 语言模型 笔记 人工智能 深度学习 计算机视觉 卷积神经网络 deepseek Ollama 模型联网 API CherryStudio php 进程 操作系统 进程控制 经验分享 docker java 容器 nginx 负载均衡 python MCP harmonyos 华为 开发语言 typescript 计算机网络 macos windows conda 机器学习 tcp/ip react.js 前端面试题 node.js 持续部署 数据分析 tomcat Dify asm vscode 学习方法 学习 jellyfin nas openvpn server openvpn配置教程 centos安装openvpn C# MQTTS 双向认证 emqx c++ 并查集 leetcode jenkins gitee spring boot mysql RTSP xop RTP RTSPServer 推流 视频 fstab 科技 ai 个人开发 debian PVE adb android 环境变量 ip协议 json 高级IO epoll 大数据 spark hive 前端框架 YOLO 目标检测 fastapi mcp mcp-proxy mcp-inspector fastapi-mcp agent sse k8s kubernetes sublime text 编辑器 filezilla 无法连接服务器 连接被服务器拒绝 vsftpd 331/530 智能路由器 外网访问 内网穿透 端口映射 word图片自动上传 word一键转存 复制word图片 复制word图文 复制word公式 粘贴word图文 粘贴word公式 数据结构 c语言 嵌入式 linux驱动开发 arm开发 嵌入式硬件 思科 HarmonyOS Next qt QT 5.12.12 QT开发环境 Ubuntu18.04 DevEco Studio 小程序 微信小程序域名配置 微信小程序服务器域名 微信小程序合法域名 小程序配置业务域名 微信小程序需要域名吗 微信小程序添加域名 Qwen2.5-coder 离线部署 Linux 进程信号 matplotlib fonts-noto-cjk redis unix pip maxkb ARG numpy 程序员创富 nlp 后端 DeepSeek-R1 API接口 集成学习 集成测试 自动化 spring dubbo ui 华为云 华为od pycharm ue5 vr ip命令 新增网卡 新增IP 启动网卡 多线程 vue3 HTML audio 控件组件 vue3 audio音乐播放器 Audio标签自定义样式默认 vue3播放音频文件音效音乐 自定义audio播放器样式 播放暂停调整声音大小下载文件 windows 服务器安装 spring cloud 运维开发 云原生 c# burp suite 抓包 vnc github 创意 社区 Docker Hub docker pull 镜像源 daemon.json elasticsearch rabbitmq EtherCAT转Modbus ECT转Modbus协议 EtherCAT转485网关 ECT转Modbus串口网关 EtherCAT转485协议 ECT转Modbus网关 Flask FastAPI Waitress Gunicorn uWSGI Uvicorn 鸿蒙 GaN HEMT 氮化镓 单粒子烧毁 辐射损伤 辐照效应 efficientVIT YOLOv8替换主干网络 TOLOv8 物联网 mcu iot 信息与通信 单片机 llm transformer 媒体 互信 git websocket protobuf 序列化和反序列化 安装 网络药理学 生信 生物信息学 gromacs 分子动力学模拟 MD 动力学模拟 gcc centos 7 mac 游戏程序 ios 虚拟机 VMware ip 宝塔面板访问不了 宝塔面板网站访问不了 宝塔面板怎么配置网站能访问 宝塔面板配置ip访问 宝塔面板配置域名访问教程 宝塔面板配置教程 Dell R750XS powerpoint ide 面试 性能优化 jdk intellij-idea 架构 dify VMware安装mocOS macOS系统安装 MacOS录屏软件 http rtsp服务器 rtsp server android rtsp服务 安卓rtsp服务器 移动端rtsp服务 大牛直播SDK eureka kafka AI大模型 大模型技术 本地部署大模型 产品经理 agi microsoft vim uni-app xcode java-ee rust ollama 私有化 本地部署 聚类 Alexnet gnu 开源 实时音视频 实时互动 pytorch vue.js audio vue音乐播放器 vue播放音频文件 Audio音频播放器自定义样式 播放暂停进度条音量调节快进快退 自定义audio覆盖默认样式 etcd 数据安全 RBAC 计算机外设 电脑 软件需求 cron crontab日志 链表 ssl ESP32 udp DeepSeek 大模型 chatgpt gpu算力 豆瓣 追剧助手 迅雷 微信 向日葵 vSphere vCenter 软件定义数据中心 sddc 1024程序员节 ubuntu20.04 ros ros1 Noetic 20.04 apt 安装 milvus LDAP 微信分享 Image wxopensdk fd 文件描述符 aws googlecloud svn AI编程 jmeter 软件测试 firewalld 读写锁 HCIE 数通 远程工作 机器人 话题通信 服务通信 rpc ddos web安全 低代码 腾讯云 监控 自动化运维 gateway Clion Nova ResharperC++引擎 Centos7 远程开发 WSL2 上安装 Ubuntu pillow rag ragflow ragflow 源码启动 html5 firefox sqlserver kamailio sip VoIP 大数据平台 Portainer搭建 Portainer使用 Portainer使用详解 Portainer详解 Portainer portainer virtualenv ue4 着色器 虚幻 ESXi 目标跟踪 OpenVINO 推理应用 selenium 测试工具 AI写作 WSL win11 无法解析服务器的名称或地址 postgresql cuda cudnn anaconda 微服务 springcloud MQTT协议 消息服务器 代码 list 模拟实现 https rust腐蚀 进程优先级 调度队列 进程切换 网易邮箱大师 kylin OpenManus 命名管道 客户端与服务端通信 DNS AI 爬虫 数据集 threejs 3D 程序人生 golang CLion 远程连接 IDE 远程 命令 执行 sshpass 操作 burpsuite 安全工具 mac安全工具 burp安装教程 渗透工具 指令 yum docker-compose docker compose ux prometheus grafana Doris搭建 docker搭建Doris Doris搭建过程 linux搭建Doris Doris搭建详细步骤 Doris部署 代码调试 ipdb Cursor 中间件 iis 多线程服务器 Linux网络编程 设置代理 实用教程 FTP 服务器 bash 5G 3GPP 卫星通信 C 进程地址空间 live555 rtsp rtp docker run 数据卷挂载 交互模式 apache 远程控制 远程看看 远程协助 WebUI DeepSeek V3 权限 VMware创建虚拟机 硬件工程 log4j flutter Hyper-V WinRM TrustedHosts minicom 串口调试工具 视觉检测 键盘 飞牛nas fnos 环境配置 Windsurf DigitalOcean GPU服务器购买 GPU服务器哪里有 GPU服务器 linux环境变量 .net stm32 Kali Linux 黑客 渗透测试 信息收集 alias unalias 别名 串口服务器 mount挂载磁盘 wrong fs type LVM挂载磁盘 Centos7.9 压测 ECS 僵尸进程 mq rocketmq VMware安装Ubuntu Ubuntu安装k8s Hive环境搭建 hive3环境 Hive远程模式 perf linux内核 课程设计 WSL2 Ubuntu22.04 虚拟化 开发人员主页 Linux的权限 jar gradle flash-attention 报错 sql Deepseek Deepseek-R1 私有化部署 推理模型 linux上传下载 camera Arduino 电子信息 iperf3 带宽测试 arm WLAN KylinV10 麒麟操作系统 Vmware maven 安卓模拟器 源码剖析 rtsp实现步骤 流媒体开发 NFS 监控k8s 监控kubernetes cpu 内存 实时 使用 go 代理模式 flask AIGC iBMC UltraISO 本地环回 bind 区块链 AI-native gpt ipython Agent LLM CrewAI edge浏览器 rime bug 域名服务 DHCP 符号链接 配置 基础环境 Ubuntu Server Ubuntu 22.04.5 Linux无人智慧超市 LInux多线程服务器 QT项目 LInux项目 单片机项目 C语言 visual studio code 深度求索 私域 知识库 Chatbox YOLOv8 NPU Atlas800 A300I pro asi_bench webstorm 监控k8s集群 集群内prometheus UOS 统信操作系统 系统安全 腾讯云大模型知识引擎 mybatis 像素流送api 像素流送UE4 像素流送卡顿 像素流送并发支持 统信UOS 麒麟 bonding 链路聚合 iftop 网络流量监控 llama3 Chatglm 开源大模型 RAGFLOW 缓存 database windows日志 unity vmware 卡死 强制清理 强制删除 mac废纸篓 ping++ Cline 自动化编程 openwrt stm32项目 ssh漏洞 ssh9.9p2 CVE-2025-23419 开发 ai小智 语音助手 ai小智配网 ai小智教程 智能硬件 esp32语音助手 diy语音助手 selete xml zotero WebDAV 同步失败 ros2 moveit 机器人运动 rancher JAVA Java 音视频 安防软件 通信工程 毕业 YOLOv12 温湿度数据上传到服务器 Arduino HTTP wireshark 显示过滤器 ICMP Wireshark安装 dell服务器 网络工程师 网络管理 软考 2024 2024年上半年 下午真题 答案 文件系统 路径解析 ansible playbook 剧本 file server http server web server 云桌面 微软 AD域控 证书服务器 ffmpeg 数据挖掘 网络用户购物行为分析可视化平台 大数据毕业设计 迁移指南 安装教程 GPU环境配置 Ubuntu22 CUDA PyTorch Anaconda安装 KingBase Ubuntu共享文件夹 共享目录 Linux共享文件夹 博客 nftables 防火墙 oceanbase rc.local 开机自启 systemd 无人机 bcompare Beyond Compare 系统开发 binder 车载系统 framework 源码环境 Samba NAS 银河麒麟 kylin v10 麒麟 v10 工业4.0 深度优先 图论 并集查找 换根法 树上倍增 智能手机 Termux mongodb 客户端 express p2p Linux PID 虚拟局域网 postman mock mock server 模拟服务器 mock服务器 Postman内置变量 Postman随机数据 linux安装配置 compose kali 共享文件夹 政务 分布式系统 监控运维 Prometheus Grafana 安卓 系统架构 设计模式 软件工程 IIS服务器 IIS性能 日志监控 中兴光猫 换光猫 网络桥接 自己换光猫 intellij idea html tcpdump CPU 主板 电源 网卡 主从复制 fpga开发 鸿蒙系统 交互 银河麒麟服务器操作系统 系统激活 docker搭建pg docker搭建pgsql pg授权 postgresql使用 postgresql搭建 云原生开发 K8S k8s管理系统 ollama下载加速 windwos防火墙 defender防火墙 win防火墙白名单 防火墙白名单效果 防火墙只允许指定应用上网 防火墙允许指定上网其它禁止 tar .netcore docker搭建nacos详解 docker部署nacos docker安装nacos 腾讯云搭建nacos centos7搭建nacos gitlab Reactor C++ 隐藏文件 隐藏目录 管理器 通配符 虚拟现实 uv openEuler unity3d 职场和发展 网络穿透 云服务器 outlook 火绒安全 Nuxt.js 多层架构 解耦 rclone AList webdav fnOS SSH Xterminal 程序员 SSH 服务 SSH Server OpenSSH Server HP Anyware 弹性计算 裸金属服务器 弹性裸金属服务器 lio-sam SLAM 微信小程序 HiCar CarLife+ CarPlay QT RK3588 yolov8 致远OA OA服务器 服务器磁盘扩容 图像处理 3d W5500 OLED u8g2 TCP服务器 Node-Red 编程工具 流编程 分析解读 编程 wps okhttp CORS 跨域 web prompt 雨云 NPS 智慧农业 开源鸿蒙 团队开发 Linux的基础指令 dns 磁盘清理 uniapp vue 生活 推荐算法 大模型入门 跨平台 Jellyfin 恒源云 蓝耘科技 元生代平台工作流 ComfyUI 自学笔记 小米 澎湃OS Android powerbi 信息可视化 tcp c/c++ 串口 css 多进程 TrueLicense jupyter AutoDL pdf 图片增强 增强数据 dba rustdesk 能力提升 面试宝典 技术 IT信息化 minio oneapi 大模型微调 safari Mac 系统 rnn Linux权限 权限命令 特殊权限 历史版本 下载 安全威胁分析 ecmascript KVM 信号 devops etl centos-root /dev/mapper yum clean all df -h / du -sh matlab android studio 边缘计算 MacMini 迷你主机 mini Apple arcgis 宠物 毕业设计 免费学习 宠物领养 宠物平台 django sqlite frp 华为认证 交换机 数学建模 计算生物学 生物信息 基因组 MS Materials 鲲鹏 昇腾 npu openssl 密码学 小艺 Pura X 业界资讯 excel 模拟退火算法 EtherNet/IP串口网关 EIP转RS485 EIP转Modbus EtherNet/IP网关协议 EIP转RS485网关 EIP串口服务器 OD机试真题 华为OD机试真题 服务器能耗统计 code-server MQTT mosquitto 消息队列 Cookie nvidia MAC SecureCRT DBeaver 开机自启动 oracle fusion oracle中间件 硬件架构 AISphereButler easyui langchain vpn shell 硅基流动 ChatBox k8s二次开发 集群管理 智能音箱 智能家居 Open WebUI 国产数据库 瀚高数据库 数据迁移 下载安装 echarts 网页设计 pyautogui 镜像下载 freebsd yum源切换 更换国内yum源 QQ bot Docker VR手套 数据手套 动捕手套 动捕数据手套 XCC Lenovo Java Applet URL操作 服务器建立 Socket编程 网络文件读取 remote-ssh TCP WebServer 繁忙 服务器繁忙 解决办法 替代网站 汇总推荐 AI推理 用户缓冲区 国产操作系统 ukui 麒麟kylinos openeuler npm 代理 统信 虚拟机安装 支付 微信支付 开放平台 ArkTs ArkUI 群晖 onlyoffice ocr 框架搭建 DeepSeek r1 av1 电视盒子 机顶盒ROM 魔百盒刷机 cd 目录切换 c RustDesk自建服务器 rustdesk服务器 docker rustdesk SenseVoice web3.py skynet 网络结构图 VPS IM即时通讯 企业微信 剪切板对通 HTML FORMAT wsl 版本 pyqt Mac内存不够用怎么办 宝塔 saltstack ELF加载 embedding zabbix 实习 其他 cocoapods 输入法 miniapp 真机调试 调试 debug 断点 网络API请求调试方法 RTMP 应用层 apt 国内源 keepalived sonoma 自动更新 big data opensearch helm tensorflow 服务器主板 AI芯片 飞书 eclipse neo4j 数据仓库 数据库开发 数据库架构 MI300x 孤岛惊魂4 WebRTC 游戏引擎 NLP模型 NLP 自动驾驶 yolov5 LORA 大语言模型 安全架构 Kali 渗透 蓝桥杯 open Euler dde deepin Python 网络编程 聊天服务器 套接字 Socket webrtc ArcTS 登录 ArcUI GridItem 服务器扩容没有扩容成功 arkUI IPMITOOL BMC 硬件管理 opcua opcda KEPServer安装 open webui CosyVoice 图形化界面 金仓数据库 2025 征文 数据库平替用金仓 游戏服务器 TrinityCore 魔兽世界 chrome devtools chromedriver xpath定位元素 sysctl.conf vm.nr_hugepages curl wget bat 华为证书 HarmonyOS认证 华为证书考试 adobe 传统数据库升级 银行 LLMs 飞牛 asp.net大文件上传 asp.net大文件上传下载 asp.net大文件上传源码 ASP.NET断点续传 asp.net上传文件夹 asp.net上传大文件 .net core断点续传 文件分享 springboot VSCode less 移动云 视频平台 录像 视频转发 性能测试 视频流 存储 云服务 可信计算技术 springsecurity6 oauth2 授权服务器 token sas trea idea 大模型部署 小番茄C盘清理 便捷易用C盘清理工具 小番茄C盘清理的优势尽显何处? 教你深度体验小番茄C盘清理 C盘变红?!不知所措? C盘瘦身后电脑会发生什么变化? fork wait waitpid exit linux 命令 sed 命令 Google pay Apple pay redhat su sudo RoboVLM 通用机器人策略 VLA设计哲学 vlm fot robot 视觉语言动作模型 具身智能 工具 HarmonyOS OpenHarmony 自动化任务管理 命令行 基础入门 服务器数据恢复 数据恢复 存储数据恢复 raid5数据恢复 磁盘阵列数据恢复 软链接 硬链接 visualstudio 银河麒麟操作系统 国产化 nfs GameFramework HybridCLR Unity编辑器扩展 自动化工具 服务器部署ai模型 部署 SSL 域名 rsyslog Anolis nginx安装 环境安装 linux插件下载 图形渲染 python2 ubuntu24.04 技能大赛 pygame 小游戏 五子棋 三级等保 服务器审计日志备份 双系统 kotlin iphone sdkman Trae AI 原生集成开发环境 Trae AI 驱动开发 嵌入式实习 db 计算机 嵌入式系统开发 黑客技术 流式接口 sqlite3 URL opengl eNSP 网络规划 VLAN 企业网络 api 文心一言 banner 相机 ROS Kylin-Server 服务器安装 EasyConnect Xinference RAGFlow bootstrap nextjs react reactjs r语言 数据可视化 mysql离线安装 ubuntu22.04 mysql8.0 源码 智能电视 远程桌面 hadoop 免费域名 域名解析 大文件分片上传断点续传及进度条 如何批量上传超大文件并显示进度 axios大文件切片上传详细教 node服务器合并切片 vue3大文件上传报错提示错误 大文件秒传跨域报错cors 网工 混合开发 JDK Linux awk awk函数 awk结构 awk内置变量 awk参数 awk脚本 awk详解 docker命令大全 搜索引擎 ssrf 失效的访问控制 ci/cd 小智 VMware Tools vmware tools安装 vmwaretools安装步骤 vmwaretools安装失败 vmware tool安装步骤 vm tools安装步骤 vm tools安装后不能拖 vmware tools安装步骤 Web服务器 多线程下载工具 PYTHON DocFlow k8s资源监控 annotations自动化 自动化监控 监控service 监控jvm ubuntu24 vivado24 elk k8s集群资源管理 conda配置 conda镜像源 xrdp 考研 Docker Compose 在线office string模拟实现 深拷贝 浅拷贝 经典的string类问题 三个swap 京东云 SSL证书 数据管理 数据治理 数据编织 数据虚拟化 Web应用服务器 Helm k8s集群 健康医疗 互联网医院 chrome 浏览器下载 chrome 下载安装 谷歌浏览器下载 odoo 服务器动作 Server action 雨云服务器 axure 富文本编辑器 TRAE 环境迁移 Playwright 自动化测试 崖山数据库 YashanDB x64 SIGSEGV SSE xmm0 thingsboard 稳定性 看门狗 Ubuntu 24.04.1 轻量级服务器 nac 802.1 portal Typore 单例模式 MySql xfce 毕设 大模型面经 大模型学习 AnythingLLM AnythingLLM安装 Mermaid 可视化图表 自动化生成 相差8小时 UTC 时间 联网 easyconnect zip unzip netty 代码托管服务 idm ebpf uprobe IIS .net core Hosting Bundle .NET Framework vs2022 直播推流 AI代码编辑器 kvm qemu libvirt USB转串口 CH340 交叉编译 状态管理的 UDP 服务器 Arduino RTOS 飞牛NAS 飞牛OS MacBook Pro WebVM harmonyOS面试题 网络爬虫 yaml Ultralytics 可视化 cnn 流水线 脚本式流水线 邮件APP 免费软件 无桌面 gitea 微信公众平台 risc-v Linux 维护模式 ceph Carla 智能驾驶 树莓派 VNC Linux24.04 Zoertier 内网组网 联想开天P90Z装win10 Invalid Host allowedHosts can 线程池 Wi-Fi 功能测试 jina 压力测试 执法记录仪 智能安全帽 smarteye ROS2 java-rabbitmq SysBench 基准测试 samba 服务器时间 ssh远程登录 virtualbox 云电竞 云电脑 todesk 宕机切换 服务器宕机 信号处理 Ubuntu DeepSeek DeepSeek Ubuntu DeepSeek 本地部署 DeepSeek 知识库 DeepSeek 私有化知识库 本地部署 DeepSeek DeepSeek 私有化部署 mariadb 产测工具框架 IMX6ULL 管理框架 MCP server C/S make命令 makefile文件 AP配网 AK配网 小程序AP配网和AK配网教程 WIFI设备配网小程序UDP开 Minecraft DOIT 四博智联 视频编解码 composer iDRAC R720xd 网络攻击模型 jvm lsb_release /etc/issue /proc/version uname -r 查看ubuntu版本 scikit-learn 强化学习 镜像 Ark-TS语言 宝塔面板无法访问 宝塔面板 开机黑屏 磁盘监控 cmos 硬件 服务器配置 聊天室 n8n dity make mamba 软件构建 网页服务器 web服务器 Nginx telnet 远程登录 代码规范 XFS xfs文件系统损坏 I_O error 虚拟显示器 测试用例 Vmamba searxng llama.cpp Docker引擎已经停止 Docker无法使用 WSL进度一直是0 镜像加速地址 muduo X11 Xming export import save load 迁移镜像 stable diffusion AI作画 Dell HPE 联想 浪潮 ubuntu24.04.1 重启 排查 系统重启 日志 原因 浏览器自动化 FunASR ASR 实战案例 RAG 检索增强生成 文档解析 大模型垂直应用 firewall .net mvc断点续传 ruby 线程 visual studio rdp 实验 cfssl 串口驱动 CH341 uart 485 HarmonyOS NEXT 原生鸿蒙 fast 王者荣耀 拓扑图 top Linux top top命令详解 top命令重点 top常用参数 工作流 workflow 设备 GPU PCI-Express 矩阵 GRUB引导 Linux技巧 jetty undertow 服务器管理 配置教程 网站管理 grub 版本升级 扩容 医疗APP开发 app开发 P2P HDLC 模拟器 教程 UOS1070e MNN Qwen 本地部署AI大模型 vu大文件秒传跨域报错cors 程序 性能分析 RAID RAID技术 磁盘 Erlang OTP gen_server 热代码交换 事务语义 ShenTong lb 协议 游戏机 hugo Netty 即时通信 NIO SWAT 配置文件 服务管理 网络共享 网站搭建 serv00 gaussdb ruoyi 微信开放平台 微信公众号配置 DeepSeek行业应用 Heroku 网站部署 nvm gpt-3 next.js 部署next.js 7z kernel 显卡驱动 CentOS Stream CentOS micropython esp32 mqtt 机柜 1U 2U 思科模拟器 Cisco nuxt3 OpenSSH DIFY Qualcomm WoS QNN AppBuilder 序列化反序列化 单元测试 IPv4 子网掩码 公网IP 私有IP Docker Desktop SSH 密钥生成 SSH 公钥 私钥 生成 毕昇JDK 热榜 灵办AI 金融 上传视频至服务器代码 vue3批量上传多个视频并预览 如何实现将本地视频上传到网页 element plu视频上传 ant design vue vue3本地上传视频及预览移除 seatunnel 策略模式 算力 数据库系统 IO React Next.js 开源框架 高效远程协作 TrustViewer体验 跨设备操作便利 智能远程控制 hibernate 云耀服务器 notepad 办公自动化 pdf教程 半虚拟化 硬件虚拟化 Hypervisor 换源 Debian 社交电子 同步 备份 建站 trae vscode 1.86 Redis Desktop GCC crosstool-ng 大模型教程 直流充电桩 充电桩 springboot远程调试 java项目远程debug docker远程debug java项目远程调试 springboot远程 IPMI pgpool SEO 端口测试 chfs ubuntu 16.04 上传视频文件到服务器 uniApp本地上传视频并预览 uniapp移动端h5网页 uniapp微信小程序上传视频 uniapp app端视频上传 uniapp uview组件库 田俊楠 漏洞 wsl2 显示管理器 lightdm gdm kind 服务器安全 网络安全策略 防御服务器攻击 安全威胁和解决方案 程序员博客保护 数据保护 安全最佳实践 glibc vite System V共享内存 进程通信 内网服务器 内网代理 内网通信 需求分析 规格说明书 deekseek es6 qt6.3 g726 企业网络规划 华为eNSP 反向代理 deepseek-r1 大模型本地部署 mysql安装报错 windows拒绝安装 docker desktop image 笔灵AI AI工具 ECT转485串口服务器 ECT转Modbus485协议 ECT转Modbus串口服务器 备选 网站 调用 示例 软件卸载 系统清理 软负载 AD域 查询数据库服务IP地址 SQL Server deployment daemonset statefulset cronjob 语音识别 开源软件 超融合 端口 查看 ss wpf VPN wireguard g++ g++13 word IO模型 UEFI Legacy MBR GPT U盘安装操作系统 运维监控 自定义客户端 SAS rpa 北亚数据恢复 oracle数据恢复 Isaac Sim 虚拟仿真 wsgiref Web 服务器网关接口 flink 华为机试 大大通 第三代半导体 碳化硅 MacOS 回显服务器 UDP的API使用 java-rocketmq 做raid 装系统 armbian u-boot 负载测试 Linux find grep 钉钉 deep learning CDN 影刀 #影刀RPA# Docker快速入门 PX4 AzureDataStudio 项目部署到linux服务器 项目部署过程 ftp 升级 CVE-2024-7347 抓包工具 VM搭建win2012 win2012应急响应靶机搭建 攻击者获取服务器权限 上传wakaung病毒 应急响应并溯源 挖矿病毒处置 应急响应综合性靶场 h.264 LLM Web APP Streamlit 软件 figma AI员工 cpp-httplib xshell termius iterm2 qt5 客户端开发 网络建设与运维 web3 cmake 阿里云ECS vscode1.86 1.86版本 ssh远程连接 单一职责原则 李心怡 我的世界服务器搭建 minecraft 服务网格 istio IMM GoogLeNet MAVROS 四旋翼无人机 合成模型 扩散模型 图像生成 docker部署翻译组件 docker部署deepl docker搭建deepl java对接deepl 翻译组件使用 授时服务 北斗授时 高效I/O HistoryServer Spark YARN jobhistory Headless Linux docker部署Python k8s部署 MySQL8.0 高可用集群(1主2从) 错误代码2603 无网络连接 2603 clickhouse 鸿蒙开发 移动开发 僵尸世界大战 游戏服务器搭建 zookeeper 语法 黑苹果 tidb GLIBC Windows ai工具 v10 ldap sequoiaDB DevOps 软件交付 数据驱动 应用场景 捆绑 链接 谷歌浏览器 youtube google gmail GIS 遥感 WebGIS vmamba 本地知识库部署 DeepSeek R1 模型 本地化部署 服务器部署 本地拉取打包 nosql 搭建个人相关服务器 远程过程调用 Windows环境 sudo原理 su切换 prometheus数据采集 prometheus数据模型 prometheus特点 代理服务器 架构与原理 deepseak 豆包 KIMI 腾讯元宝 csrutil mac恢复模式进入方法 SIP 恢复模式 CNNs 图像分类 多个客户端访问 IO多路复用 TCP相关API 内网环境 内核 信创 信创终端 中科方德 网卡的名称修改 eth0 ens33 浪潮信息 AI服务器 triton 模型分析 regedit 开机启动 极限编程 MobaXterm 文件传输 wordpress 无法访问wordpess后台 打开网站页面错乱 linux宝塔面板 wordpress更换服务器 安装MySQL 多路转接 iNode Macos 远程服务 webgl vue-i18n 国际化多语言 vue2中英文切换详细教程 如何动态加载i18n语言包 把语言json放到服务器调用 前端调用api获取语言配置文件 SRS 流媒体 直播 怎么卸载MySQL MySQL怎么卸载干净 MySQL卸载重新安装教程 MySQL5.7卸载 Linux卸载MySQL8.0 如何卸载MySQL教程 MySQL卸载与安装 NAT转发 NAT Server Unity Dedicated Server Host Client 无头主机 Reactor反应堆 perl IDEA Python基础 Python教程 Python技巧 网络文件系统 常用命令 文本命令 目录命令 python3.11 玩机技巧 软件分享 软件图标 Ubuntu 24 常用命令 Ubuntu 24 Ubuntu vi 异常处理 dash 正则表达式 vllm Claude 高效日志打印 串口通信日志 服务器日志 系统状态监控日志 异常记录日志 midjourney aarch64 编译安装 HPC WINCC 欧标 OCPP 查看显卡进程 fuser ArtTS lvm 磁盘挂载 磁盘分区 sentinel lua es 佛山戴尔服务器维修 佛山三水服务器维修 Linux环境 whistle 移动魔百盒 swoole FTP服务器 音乐库 DenseNet scapy 我的世界 我的世界联机 数码 电视剧收视率分析与可视化平台 diskgenius 沙盒 加解密 Yakit yaklang ArkTS 移动端开发 增强现实 沉浸式体验 技术实现 案例分析 AR 干货分享 黑客工具 密码爆破 匿名管道 USB网络共享 tailscale derp derper 中转 线性代数 电商平台 ecm bpm C++软件实战问题排查经验分享 0xfeeefeee 0xcdcdcdcd 动态库加载失败 程序启动失败 程序运行权限 标准用户权限与管理员权限 虚幻引擎 MDK 嵌入式开发工具 论文笔记 deepseek r1 问题解决 Mac软件 Qwen2.5-VL cursor 音乐服务器 Navidrome 音流 Sealos 技术共享 论文阅读 浏览器开发 AI浏览器 H3C 大屏端 mcp服务器 client close EVE-NG shell脚本免交互 expect linux免交互 proxy模式 烟花代码 烟花 元旦 hosts 性能调优 安全代理 免密 公钥 私钥 前后端分离 网络搭建 神州数码 神州数码云平台 云平台 copilot navicat 服务器无法访问 ip地址无法访问 无法访问宝塔面板 宝塔面板打不开 yashandb PPI String Cytoscape CytoHubba 个人博客 人工智能生成内容 netlink libnl3 kerberos Attention win服务器架设 windows server uni-file-picker 拍摄从相册选择 uni.uploadFile H5上传图片 微信小程序上传图片 Spring Security 知识图谱 openstack Xen TCP协议 抗锯齿 状态模式 阻塞队列 生产者消费者模型 服务器崩坏原因 Logstash 日志采集 ISO镜像作为本地源 游戏开发 VS Code 项目部署 备份SQL Server数据库 数据库备份 傲梅企业备份网络版 LInux ubuntu 18.04 IMX317 MIPI H265 VCU 磁盘镜像 服务器镜像 服务器实时复制 实时文件备份 MVS 海康威视相机 EMUI 回退 降级 hexo pppoe radius 小智AI服务端 xiaozhi TTS react native dock 加速 AD 域管理 HTTP 服务器控制 ESP32 DeepSeek Tabs组件 TabContent TabBar TabsController 导航页签栏 滚动导航栏 嵌入式Linux IPC dns是什么 如何设置电脑dns dns应该如何设置 银河麒麟桌面操作系统 Kylin OS xss 在线预览 xlsx xls文件 在浏览器直接打开解析xls表格 前端实现vue3打开excel 文件地址url或接口文档流二进 分布式训练 AI agent 大模型应用 多端开发 智慧分发 应用生态 鸿蒙OS Apache Beam 批流统一 案例展示 数据分区 容错机制 vasp安装 qt项目 qt项目实战 qt教程 国标28181 视频监控 监控接入 语音广播 流程 SDP ranger MySQL8.0 容器技术 iTerm2 Radius 计算机科学与技术 底层实现 EMQX 通信协议 计算虚拟化 弹性裸金属 元服务 应用上架 银河麒麟高级服务器 外接硬盘 Kylin seleium 物联网开发 根服务器 glm4 端口聚合 windows11 达梦 DM8 laravel 离线部署dify junit 对比 meld DiffMerge 联机 僵尸毁灭工程 游戏联机 开服 ABAP ollama api ollama外网访问 桌面快捷方式 存储维护 NetApp存储 EMC存储 autodl 数字证书 签署证书 pyicu AI Agent 字节智能运维 风扇控制软件 retry 重试机制 内网渗透 靶机渗透 日志分析 系统取证 CPU 使用率 系统监控工具 linux 命令 蓝桥杯C++组 西门子PLC 通讯 WireGuard 异地组网 Ardupilot Office ardunio BLE 环境搭建 Maven initramfs Linux内核 Grub 解决方案 端口号 开放端口 访问列表 js 接口优化 动静态库 管道 solidworks安装 nohup后台启动 GeneCards OMIM TTD lighttpd安装 Ubuntu配置 Windows安装 服务器优化 显示器 qps 高并发 弹性服务器 env 变量 多产物 fiddler ShapeFile GeoJSON 零售 yum换源 css3 VGG网络 卷积层 池化层 服务器ssl异常解决 配置原理 服务器正确解析请求体 桌面环境 ufw UDP Pyppeteer 玩游戏 流量运营 macOS 进程程序替换 execl函数 execv函数 execvp函数 execvpe函数 putenv函数 华为OD 可以组成网络的服务器 archlinux kde plasma beautifulsoup 粘包问题 mm-wiki搭建 linux搭建mm-wiki mm-wiki搭建与使用 mm-wiki使用 mm-wiki详解 蓝牙 进程间通信 Unity插件 iventoy VmWare OpenEuler ajax 电脑桌面出现linux图标 电脑桌面linux图标删除不了 电脑桌面Liunx图标删不掉 linux图标删不掉 Linux Vim 输入系统 用户管理 gunicorn 一切皆文件 充电桩平台 充电桩开源平台 带外管理 大模型推理 zerotier 搜狗输入法 中文输入法 锁屏不生效 NFC 近场通讯 智能门锁 ftp服务 文件上传 高德地图 鸿蒙接入高德地图 HarmonyOS5.0 SVN Server tortoise svn HAProxy 录音麦克风权限判断检测 录音功能 录音文件mp3播放 小程序实现录音及播放功能 RecorderManager 解决录音报错播放没声音问题 工具分享 信息安全 显卡驱动持久化 GPU持久化 大版本升 升级Ubuntu系统 IPv6 IPv6测试 IPv6测速 IPv6检测 IPv6查询 分子对接 autodock mgltools PDB PubChem massa sui aptos sei sublime text3 内存管理 空间 查错 电路仿真 multisim 硬件工程师 硬件工程师学习 电路图 电路分析 仪器仪表 umeditor粘贴word ueditor粘贴word ueditor复制word ueditor上传word图片 ueditor导入word ueditor导入pdf ueditor导入ppt 实时内核 LVM lvresize 磁盘扩容 pvcreate SystemV nacos 网络原理 终端 行情服务器 股票交易 速度慢 切换 股票量化接口 股票API接口 大模型训练/推理 推理问题 mindie 全文检索 图搜索算法 chromium dpi 安全漏洞 智能体开发 动态规划 程序化交易 量化交易 高频交易 终端工具 远程工具 IP配置 netplan llamafactory 微调 分布式账本 智能合约 信任链 共识算法 Xshell openjdk ubuntu安装 linux入门小白 autoware linuxdeployqt 打包部署程序 appimagetool 打不开xxx软件 无法检查其是否包含恶意软件 软件开发 Bug解决 Qt platform OpenCV 源代码管理 c/s AimRT PyQt PySide6 券商 股票交易接口api 类型 特点 机械臂 金仓数据库概述 金仓数据库的产品优化提案 element-ui 上传视频并预览视频 vue上传本地视频及进度条功能 vue2选择视频上传到服务器 upload上传视频组件插件 批量上传视频 限制单个上传视频 7-zip 区块链项目 servlet Echarts图表 折线图 柱状图 异步动态数据 可视化效果 哈希算法 考试 脚本 免费 跨域请求