RabbitMQ 教程 | 第11章 RabbitMQ 扩展
👨🏻💻 热爱摄影的程序员
👨🏻🎨 喜欢编码的设计师
🧕🏻 擅长设计的剪辑师
🧑🏻🏫 一位高冷无情的编码爱好者
大家好,我是 DevOps 工程师
欢迎分享 / 收藏 / 赞 / 在看!
这篇 RabbitMQ 教程为学习者提供了全面的内容,从 RabbitMQ 的简介开始,涵盖了消息中间件的概念、RabbitMQ 的安装与使用,以及交换机、队列、路由键等相关概念的介绍。进一步深入,教程探讨了 AMQP 协议、客户端开发向导,以及消息的发送和消费方式。同时,学习者还可以了解消息传输保障、高级特性如死信队列、延迟队列、优先级队列、RPC 实现等。此外,教程还涵盖了 RabbitMQ 的管理、配置、运维、监控和集群管理等重要主题,帮助学习者充分掌握 RabbitMQ 的应用。整篇教程丰富内容详实,适合初学者和有经验的开发者参考学习。
全篇共 11 章,9 万余字。本文:第11章 RabbitMQ 扩展。
第11章 RabbitMQ 扩展
11.1 消息追踪
了解如何对 RabbitMQ 中的消息进行追踪和监控,以便进行可靠性检测和问题排查。
11.1.1 Firehose
Firehose 插件是 RabbitMQ 提供的一个插件,它允许将消息传递日志导出到外部系统进行分析和监控。通过 Firehose,您可以将消息传递过程中的各种事件、指标和数据导出到指定的外部系统,如 Elasticsearch、Logstash 等,以便进行实时监控、数据分析和性能优化。
使用 Firehose 插件的步骤:
- 安装 Firehose 插件: 首先需要在 RabbitMQ 服务器上安装 Firehose 插件。可以通过 RabbitMQ 的插件管理工具来安装插件,或者手动下载插件文件进行安装。
- 配置 Firehose 插件: 安装完插件后,需要对 Firehose 进行配置,以指定数据的输出目的地。通常需要配置导出数据的外部系统的连接信息,如 Elasticsearch 的地址、用户名、密码等。
- 启用 Firehose 插件: 配置完成后,需要在 RabbitMQ 中启用 Firehose 插件。通过启用插件,RabbitMQ 将会把消息传递日志数据导出到配置的外部系统。
- 监控和分析: 一旦 Firehose 插件启用成功,RabbitMQ 将开始将消息传递日志数据导出到指定的外部系统。在外部系统中,您可以使用各种监控和分析工具来实时监控消息的传递状态、性能指标等,并进行数据分析和优化。
Firehose 插件的优势:
- 实时监控: Firehose 允许实时地将消息传递日志导出到外部系统,使您能够及时监控 RabbitMQ 集群的运行状态和性能。
- 灵活性: 通过配置 Firehose 插件,您可以选择导出的日志内容和指标,以满足特定的监控和分析需求。
- 集成性: Firehose 插件支持导出数据到多种外部系统,如 Elasticsearch、Logstash 等,使其与现有的监控和分析平台无缝集成。
- 性能优化: 通过监控和分析导出的日志数据,您可以发现潜在的性能瓶颈和问题,并对 RabbitMQ 进行优化。
注意事项:
- 在配置 Firehose 插件时,需要确保外部系统的连接信息正确,以保证数据能够正确地导出到指定的目的地。
- 导出的日志数据可能会产生较大的数据量,因此需要确保外部系统的存储和性能能够满足需求。
- 在使用 Firehose 插件时,需要谨慎处理敏感信息,以确保数据的安全性。
总的来说,Firehose 插件是 RabbitMQ 提供的一个强大的工具,通过它可以将消息传递日志导出到外部系统,帮助您实时监控和分析 RabbitMQ 集群的性能,从而优化消息传递过程和提高系统的稳定性和可靠性。
11.1.2 rabbitmq_tracing 插件
rabbitmq_tracing 插件是 RabbitMQ 提供的一个插件,它允许您在 RabbitMQ 中对消息进行追踪和监控。通过 rabbitmq_tracing 插件,您可以捕获消息在 RabbitMQ 中的生命周期事件,包括消息的发布、路由、投递等过程,以及在不同组件之间的传递情况。这些追踪数据可以帮助您了解消息传递的整个流程,诊断潜在的问题,并优化系统性能。
使用 rabbitmq_tracing 插件的步骤:
- 安装 rabbitmq_tracing 插件: 首先需要在 RabbitMQ 服务器上安装 rabbitmq_tracing 插件。可以通过 RabbitMQ 的插件管理工具来安装插件,或者手动下载插件文件进行安装。
- 配置 rabbitmq_tracing 插件: 安装完插件后,您可以通过 RabbitMQ 的管理界面或命令行来配置 rabbitmq_tracing 插件。可以设置追踪规则,即指定哪些消息或者组件需要进行追踪。
- 启用 rabbitmq_tracing 插件: 配置完成后,需要在 RabbitMQ 中启用 rabbitmq_tracing 插件。通过启用插件,RabbitMQ 将会开始对指定的消息和组件进行追踪。
- 监控和分析: 一旦 rabbitmq_tracing 插件启用成功,RabbitMQ 将开始捕获指定消息的追踪数据。您可以通过 RabbitMQ 的管理界面或命令行来查看这些追踪数据,或者将数据导出到外部系统进行进一步的监控和分析。
rabbitmq_tracing 插件的优势:
- 全面追踪: rabbitmq_tracing 插件可以对消息传递的各个环节进行追踪,包括消息的发布、路由、投递等过程,帮助您全面了解消息在 RabbitMQ 中的行为。
- 细粒度控制: 您可以通过配置追踪规则,指定哪些消息或者组件需要进行追踪,使得您可以根据需求对追踪的数据进行细粒度的控制。
- 诊断问题: 通过查看追踪数据,您可以发现潜在的问题和瓶颈,帮助您更快地诊断和解决消息传递中的问题。
- 性能优化: 追踪数据可以帮助您了解系统的性能状况,从而优化消息传递过程,提高系统的吞吐量和稳定性。
注意事项:
- 在配置 rabbitmq_tracing 插件时,需要谨慎选择追踪规则,避免过多的追踪数据导致性能下降。
- 追踪数据可能会产生较大的数据量,因此需要确保外部系统的存储和性能能够满足需求。
- 在使用 rabbitmq_tracing 插件时,需要考虑数据的隐私和安全性,避免敏感信息被泄露。
总的来说,rabbitmq_tracing 插件是一个强大的工具,可以帮助您实现对消息的追踪和监控,从而更好地了解消息传递的整个过程,诊断问题,优化系统性能,提高 RabbitMQ 集群的稳定性和可靠性。
11.1.3 案例:可靠性检测
假设我们有一个使用 RabbitMQ 的分布式系统,其中包含多个服务,这些服务之间通过 RabbitMQ 进行消息通信。我们希望使用消息追踪特性来检测系统的可靠性,确保消息在系统中的传递是稳定和可靠的。
在这个案例中,我们将使用 rabbitmq_tracing 插件来追踪消息,并对消息传递过程中的一些关键事件进行监控和分析。具体步骤如下:
- 安装和配置 rabbitmq_tracing 插件: 首先,我们需要在 RabbitMQ 服务器上安装 rabbitmq_tracing 插件,并配置追踪规则。我们可以设置追踪规则,对特定的消息和组件进行追踪。
- 启用 rabbitmq_tracing 插件: 配置完成后,需要在 RabbitMQ 中启用 rabbitmq_tracing 插件,使其开始对指定的消息和组件进行追踪。
- 定义监控指标: 我们可以定义一些监控指标,用来衡量系统的可靠性。例如,可以监控消息的投递成功率、消息的投递时间、队列中消息的积压情况等。
- 收集追踪数据: 一旦 rabbitmq_tracing 插件启用成功,RabbitMQ 将开始捕获指定消息的追踪数据。我们可以定期收集这些数据,并将其存储到外部系统中,用于后续的分析和监控。
- 分析追踪数据: 收集到的追踪数据可以帮助我们了解消息传递的整个流程。我们可以通过分析追踪数据,发现潜在的问题和瓶颈,比如消息投递失败、消息堆积、消息丢失等。
- 发现并解决问题: 通过分析追踪数据,我们可以发现系统的可靠性问题,并采取相应的措施来解决这些问题。例如,可以增加消息的重试机制、增加队列的容量、优化消息的路由等。
- 持续监控: 可靠性检测是一个持续的过程,我们需要定期收集和分析追踪数据,不断优化系统,以确保系统的可靠性和稳定性。
总结:通过使用消息追踪特性,我们可以对消息在 RabbitMQ 中的传递过程进行全面的监控和分析,从而确保系统的可靠性。追踪数据可以帮助我们发现潜在的问题,并采取措施来优化系统性能和稳定性。通过持续监控和优化,我们可以不断提高系统的可靠性,确保消息在系统中的传递是稳定和可靠的。
11.2 负载均衡
了解如何在 RabbitMQ 集群中实现负载均衡,以确保集群的高可用性和稳定性。
11.2.1 客户端内部实现负载均衡
在 RabbitMQ 客户端内部实现负载均衡可以帮助分摊消息处理的压力,从而提高消息处理的效率和性能。负载均衡的目标是将消息均匀地分发给多个消费者,确保每个消费者都能处理大致相同数量的消息,从而避免出现消息处理的不均衡现象。
下面介绍如何在 RabbitMQ 客户端内部实现负载均衡:
- 创建多个消费者: 首先,我们需要创建多个消费者实例,每个消费者实例对应一个消费者。这些消费者实例可以运行在不同的线程或进程中,也可以部署在不同的服务器上。
- 使用订阅模式: 在 RabbitMQ 中,可以使用订阅模式(Subscription Model)来实现负载均衡。订阅模式中,每个消费者都会订阅一个队列,并通过消费者标签(Consumer Tag)进行标识。
- 设置消费者数量限制: 可以通过配置参数来设置每个队列允许的最大消费者数量。这样可以确保每个队列的消息能够被均匀地分发给多个消费者。
- 使用轮询算法: 在实现负载均衡时,常用的方法是使用轮询算法(Round-Robin)来决定消息分发的顺序。轮询算法简单高效,每次将消息依次分发给不同的消费者,实现了基本的负载均衡。
- 消费者优先级: 在一些特殊情况下,我们可以为消费者设置优先级,让某些消费者处理更重要的消息,从而实现更细粒度的负载均衡。
- 消息预取(Prefetch): RabbitMQ 支持预取(Prefetch)机制,可以设置每个消费者能够预取(Prefetch)的消息数量。通过合理设置预取数量,可以避免某个消费者在处理过程中堆积过多的消息,从而保持负载均衡。
总结:通过在 RabbitMQ 客户端内部创建多个消费者,并使用订阅模式和轮询算法,我们可以实现负载均衡,将消息均匀地分发给多个消费者,从而分摊消息处理的压力,提高消息处理的效率和性能。负载均衡是一个重要的技术,特别是在大规模的分布式系统中,通过合理配置和优化,可以实现高吞吐量和低延迟的消息处理。
11.2.2 使用 HAProxy 实现负载均衡
通过 HAProxy 可以实现 RabbitMQ 集群的负载均衡,将客户端的请求均匀地分发给不同的 RabbitMQ 节点,从而实现高可用和高吞吐量的消息处理。下面介绍如何通过 HAProxy 实现 RabbitMQ 集群的负载均衡:
- 安装和配置 HAProxy: 首先需要在一台服务器上安装和配置 HAProxy。可以使用适合自己操作系统的包管理工具进行安装,并修改 HAProxy 的配置文件(一般是位于 /etc/haproxy/haproxy.cfg)。
- 配置后端 RabbitMQ 节点: 在 HAProxy 的配置文件中,配置后端 RabbitMQ 节点的信息。指定每个节点的 IP 地址和端口号,以及使用的协议。可以使用 server 关键字来定义每个节点,例如:
backend rabbitmq_nodesserver node1 192.168.1.101:5672 checkserver node2 192.168.1.102:5672 checkserver node3 192.168.1.103:5672 check...
在上面的配置中,我们定义了三个后端节点,分别是 node1、node2 和 node3,它们的 IP 地址和端口号分别是 192.168.1.101:5672、192.168.1.102:5672 和 192.168.1.103:5672。check 参数表示 HAProxy 会定期检查这些节点的健康状态,确保它们正常运行。
- 配置前端监听: 在 HAProxy 的配置文件中,配置前端监听,指定客户端连接 HAProxy 的 IP 地址和端口号,并将请求转发到后端 RabbitMQ 节点。例如:
frontend rabbitmq_frontendbind *:5672mode tcpdefault_backend rabbitmq_nodes
在上面的配置中,我们配置了一个前端监听,监听在 5672 端口上,并将请求转发到名为 rabbitmq_nodes 的后端节点。
- 启动 HAProxy: 配置完成后,保存并退出配置文件。然后启动 HAProxy 服务,确保它正常运行。
- 连接 RabbitMQ 集群: 现在,客户端可以通过连接到 HAProxy 的 IP 地址和端口号(即 192.168.1.100:5672)来访问 RabbitMQ 集群。HAProxy 会根据负载均衡算法将请求转发到不同的后端 RabbitMQ 节点,实现消息处理的负载均衡。
总结:通过配置 HAProxy,我们可以实现 RabbitMQ 集群的负载均衡,提高消息处理的效率和可用性。HAProxy 是一个强大的负载均衡工具,可以用于各种分布式系统的负载均衡场景。注意在配置时,需要确保 RabbitMQ 节点正常运行,并且 HAProxy 与 RabbitMQ 节点之间的网络连接畅通,以确保负载均衡的顺利进行。
11.2.3 使用 Keepalived 实现高可靠负载均衡
使用 Keepalived 可以实现 RabbitMQ 集群的高可用负载均衡,保证 RabbitMQ 服务的高可用性和可靠性。Keepalived 是一个用于实现高可用性的软件,它可以通过虚拟 IP(VIP)实现在多台服务器之间的故障转移,从而确保服务的连续性。下面介绍如何使用 Keepalived 实现 RabbitMQ 集群的高可用负载均衡:
- 安装和配置 Keepalived: 首先需要在每个 RabbitMQ 节点上安装 Keepalived。可以使用适合自己操作系统的包管理工具进行安装,并修改 Keepalived 的配置文件(一般是位于 /etc/keepalived/keepalived.conf)。
- 配置虚拟 IP(VIP): 在 Keepalived 的配置文件中,配置虚拟 IP(VIP),这个 IP 地址将用于客户端连接 RabbitMQ 集群。指定 VIP 的 IP 地址和网络接口,例如:
vrrp_instance rabbitmq_vip {state MASTERinterface eth0virtual_router_id 51priority 101advert_int 1authentication {auth_type PASSauth_pass your_password}virtual_ipaddress {192.168.1.100}
}
在上面的配置中,我们配置了一个 VIP 地址为 192.168.1.100,它将绑定到 eth0 网络接口。state MASTER 表示该节点为主节点,其他节点可以配置为 state BACKUP,以实现主备节点的故障转移。
- 配置 RabbitMQ 节点信息: 在 Keepalived 的配置文件中,配置 RabbitMQ 节点的信息。指定每个节点的 IP 地址和端口号,以及使用的协议。例如:
real_server rabbitmq_node1 {192.168.1.101 5672weight 1TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 5672}
}real_server rabbitmq_node2 {192.168.1.102 5672weight 1TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 5672}
}...
在上面的配置中,我们配置了两个 RabbitMQ 节点,分别是 rabbitmq_node1 和 rabbitmq_node2,它们的 IP 地址和端口号分别是 192.168.1.101:5672 和 192.168.1.102:5672。
- 启动 Keepalived: 配置完成后,保存并退出配置文件。然后启动 Keepalived 服务,确保它正常运行。
- 连接 RabbitMQ 集群: 现在,客户端可以通过连接到 VIP 地址(即 192.168.1.100:5672)来访问 RabbitMQ 集群。Keepalived 会自动将客户端的请求转发到当前主节点(具有 VIP)的 RabbitMQ 节点上,实现负载均衡和高可用。
总结:通过配置 Keepalived,我们可以实现 RabbitMQ 集群的高可用负载均衡,保证 RabbitMQ 服务的高可用性和可靠性。Keepalived 提供了一种简单且可靠的方式来实现主备节点的故障转移,从而确保 RabbitMQ 服务的连续性。注意在配置时,需要确保 RabbitMQ 节点正常运行,并且 Keepalived 与 RabbitMQ 节点之间的网络连接畅通,以确保高可用负载均衡的顺利进行。
11.2.4 使用 Keepalived+LVS 实现负载均衡
通过 Keepalived 和 LVS(Linux Virtual Server)可以实现 RabbitMQ 集群的负载均衡,保证 RabbitMQ 服务的高可用性和性能优化。Keepalived 用于实现高可用性,而 LVS 则用于实现负载均衡。下面介绍如何使用 Keepalived 和 LVS 来实现 RabbitMQ 集群的负载均衡:
- 安装和配置 Keepalived: 首先需要在每个 RabbitMQ 节点上安装 Keepalived。可以使用适合自己操作系统的包管理工具进行安装,并修改 Keepalived 的配置文件(一般是位于 /etc/keepalived/keepalived.conf)。
- 配置虚拟 IP(VIP): 在 Keepalived 的配置文件中,配置虚拟 IP(VIP),这个 IP 地址将用于客户端连接 RabbitMQ 集群。指定 VIP 的 IP 地址和网络接口,例如:
vrrp_instance rabbitmq_vip {state MASTERinterface eth0virtual_router_id 51priority 101advert_int 1authentication {auth_type PASSauth_pass your_password}virtual_ipaddress {192.168.1.100}
}
在上面的配置中,我们配置了一个 VIP 地址为 192.168.1.100,它将绑定到 eth0 网络接口。state MASTER 表示该节点为主节点,其他节点可以配置为 state BACKUP,以实现主备节点的故障转移。
- 配置 LVS 策略: 在 RabbitMQ 集群之前的一个节点上配置 LVS 策略,用于将客户端请求均衡地转发到 RabbitMQ 节点上。LVS 提供了多种负载均衡算法,如 Round Robin、Least Connections 等,可以根据实际需求选择合适的算法。配置示例如下:
virtual_server 192.168.1.100 5672 {delay_loop 10lb_algo rrlb_kind DRpersistence_timeout 50protocol TCPreal_server 192.168.1.101 5672 {weight 1TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 5672}}real_server 192.168.1.102 5672 {weight 1TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 5672}}
}
在上面的配置中,我们配置了一个 LVS 策略,将 VIP 地址 192.168.1.100:5672 转发到两个 RabbitMQ 节点 192.168.1.101:5672 和 192.168.1.102:5672 上,使用的负载均衡算法是 Round Robin(lb_algo rr)。
- 启动 Keepalived 和 LVS: 配置完成后,保存并退出配置文件。然后启动 Keepalived 和 LVS 服务,确保它们正常运行。
- 连接 RabbitMQ 集群: 现在,客户端可以通过连接到 VIP 地址(即 192.168.1.100:5672)来访问 RabbitMQ 集群。LVS 会根据负载均衡策略将客户端的请求转发到合适的 RabbitMQ 节点上,实现负载均衡和高可用。
总结:通过配置 Keepalived 和 LVS,我们可以实现 RabbitMQ 集群的负载均衡和高可用性,提高消息处理的性能和可靠性。Keepalived 提供了故障转移机制,保证 RabbitMQ 服务的高可用性;而 LVS 提供了负载均衡机制,将客户端请求均衡地转发到 RabbitMQ 节点上,实现消息的负载均衡。注意在配置时,需要确保 RabbitMQ 节点正常运行,并且 Keepalived 和 LVS 与 RabbitMQ 节点之间的网络连接畅通,以确保负载均衡和高可用性的顺利进行。
11.3 小结
本章介绍了 RabbitMQ 的扩展特性,包括消息追踪、负载均衡等内容。通过学习这些高级特性,您可以更好地应对复杂的消息传递场景。在附录中,我们提供了集群元数据信息示例、HTTP API 接口详细内容以及网络分区图谱等供参考。在学习完这些内容后,您将对 RabbitMQ 有一个全面而深入的了解,并能够灵活应用 RabbitMQ 来构建高性能、可靠的消息传递系统。
相关文章:

RabbitMQ 教程 | 第11章 RabbitMQ 扩展
👨🏻💻 热爱摄影的程序员 👨🏻🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻🏫 一位高冷无情的编码爱好者 大家好,我是 DevO…...

一分钟完成centos7安装docker
action: 1、下载安装包2、安装docker 1、背景 使用CentOS / Redhat 7 版本的应该偏多。但是,Docker CE在系统中安装的时候,往往会出现一堆依赖包的报错,解决依赖包需要耗费不短的时间。 经验证,目前已找到兼容能力强的版本&am…...
NativePHP:使用PHP构建跨平台桌面应用的新框架
NativePHP是一个用于使用PHP构建桌面应用的框架。它允许PHP开发人员使用熟悉的工具和技术创建跨平台的原生应用。NativePHP具有一系列易于使用的类,一套用于构建和打包应用程序的工具以及一个静态跨平台PHP运行时。 官网地址:https://nativephp.comNati…...

删除这4个文件夹,流畅使用手机无忧
在现代社会中,手机已经成为我们生活中不可或缺的一部分。然而,随着使用时间的增长,我们可能会遇到手机卡顿和内存不足的问题,让我们感到十分困扰。手机卡顿不仅影响使用体验,还可能导致应用程序运行缓慢,甚…...
使用Bert预训练模型处理序列推荐任务
最近的工作有涉及该任务,整理一下思路以及代码细节。 流程 总体来说思路就是首先用预训练的bert模型,在训练集的序列上进行CLS任务。对序列内容(这里默认是token id的sequence)以0.3左右的概率进行随机mask,然后将相…...

将word每页页眉单独设置
在进行论文排版的时候,总是会出现页眉的页码设置问题,比如出现奇数或偶数页码一致,尝试将前面页码改掉,后面再修改前面也进行了变动,将每页页眉单独设置: (1)在第一页的最后一行输入…...
rust怎么生成随机数?
关注我,学习Rust不迷路!! 在 Rust 中,有几种不同的方法可以实现随机数生成。以下是其中几种常见的方法,以及它们的优缺点: 1. 使用 rand crate: 优点: rand crate 是 Rust 中最常…...

python-Excel数据模型文档转为MySQL数据库建表语句(需要连接数据库)-工作小记
将指定Excel文档转为create table 建表语句。该脚本适用于单一且简单的建表语句 呈现效果 代码 # -*- coding:utf-8 -*- # Time : 2023/8/2 17:50 # Author: 水兵没月 # File : excel_2_mysql建表语句.py import reimport pandas as pd import mysql.connectordb 库名mydb m…...

406 · 和大于S的最小子数组
链接:LintCode 炼码 - ChatGPT!更高效的学习体验! 题解:同向双指针 九章算法 - 帮助更多程序员找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧 class Solution { public:/*** param nums: an array …...
xray的 webhook如何把它Hook住?^(* ̄(oo) ̄)^
xray webhook xray可以通过webhook传递扫描信息,官方文档也是一笔带过,可能大多数人都不清楚,或者仅仅知道有这么个东西,但是不知道怎么使用,webhook是xray被动监听模式下的一种输出结构和方式。相比输出Json和txt格式…...

浅析RabbitMQ死信队列
原文首发于公众号【CSJerry】 在现代分布式系统中,消息队列扮演着至关重要的角色。它们可以实现应用程序之间的异步通信,并确保数据的可靠传输和处理。而在这个领域中,RabbitMQ作为一种强大而受欢迎的消息队列解决方案,具备了高…...

ELK 企业级日志分析系统(ElasticSearch、Logstash 和 Kiabana 详解)
目录 一.ELK简介 1.1ELK的概述 1.2ELK的组成 1.2.1 ElasticSearch 1.2.2 Logstash 1.2.3 Kibana 1.2.4 小总结 1.3可以添加其他组件 1.4filebeat 结合 logstash 带来好处 1.5日志处理的步骤 二.Elasticsearch 2.1Elasticsearch概述 2.2Elasticsearch核心概念 2.2.1接近…...

数学建模—多元线性回归分析
第一部分:回归分析的介绍 定义:回归分析是数据分析中最基础也是最重要的分析工具,绝大多数的数据分析问题,都可以使用回归的思想来解决。回归分析的人数就是,通过研究自变量X和因变量Y的相关关系,尝试去解释…...

win10 64位 vs2017 qt5.12.6 pcl1.9.1 vtk8.1.1配置安装步骤
由于我电脑中有 QT5.12.6 VS2017,就不介绍怎么安装了,只介绍cmake,pcl及vtk的配置步骤 为了便于后续QT的调用,以下所有安装路径中均不能出现中文及空格等 PCL自带VTK是不完整的,所以需要下载VTK源码进行重新编译使其…...

【项目 计网1】4.1 网络结构模式 4.2MAC地址、IP地址、端口
文章目录 第四章 Linux网络编程4.1 网络结构模式C/S结构(client-server)B/S结构(Browser/Server,浏览器/服务器模式) 4.2 4.3MAC地址、IP地址、端口(1)(2)MAC地址IP地址(…...

uni-app:分页实现多选功能
效果 代码解析 一、标签-列表 <view class"item_all" v-for"(item, index) in info" :key"index"><view class"position parameter-info text-over" :class"{checked_parameter: item.checked}" :data-id"i…...

问道管理:沪指窄幅震荡跌0.18%,有色、汽车等板块走低
3日早盘,沪指盘中窄幅震动下探,创业板逆市上扬;两市半日成交不足5000亿元,北向资金净卖出超15亿元。 到午间收盘,沪指跌0.18%报3255.88点,深成指跌0.23%,创业板指涨0.2%;两市算计成交…...
Kotlin 协程与 Flow
简介 Kotlin的Flow 是 Kotlin 在异步编程方面的一个重要组件,它提供了一种声明式的、可组合的、基于协程的异步编程模型。Flow 的设计灵感来自于 Reactive Streams、RxJava、Flux 和其他异步编程库,但它与 Kotlin 协程无缝集成,并提供了一种更…...

设备管理系统与物联网的融合:实现智能化设备监控和维护
在数字化时代,设备管理系统和物联网技术的融合为工业企业带来了巨大的变革和创新。本文将探讨设备管理系统与物联网的融合,重点介绍设备健康管理平台在实现智能化设备监控和维护方面的关键作用和优势。 一、设备管理系统与物联网的融合 随着物联网技术的…...

三、从官方源码精简出第1个FreeRTOS
1、官方源码下载 (1)进入FreeRTOS官网:FreeRTOS官网 (2)点击下载FreeRTOS。 (3)选择待示例的项目进行下载。 2、删减目录 (1)下载后解压的FreeRTOS文件如下图所示。 (2)删除下图中红框勾选的文件。 (3)删除"FreeRTOSv202212.01\FreeRTOS\Demo"目录下用…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...