当前位置: 首页 > news >正文

RabbitMQ知识点总结和复习

      之前项目中用到RabbitMQ的场景主要是订单信息的传递,还有就是利用RabbitMQ的死信队列属性设置,实现延迟队列效果,实现超时支付取消功能,以及在两个不同项目中传递数据等场景。

最近几年的工作中都是一直用的RabbitMQ,几年前简单的写过一些实践的总结。现在再做个稍微全面一点的总结。算是复习。

     浏览器的收藏夹里边保留的有RabbitMQ的管理控制台。之前在2019年写的博客中有讲到安装部署RabbitMQ的教程:消息队列RabbitMQ的使用-CSDN博客

RabbitMQ是一个高级的消息代理(也称为消息队列)。它支持多种消息协议,提供可靠的消息传递服务,并具有易于使用的管理界面。

目录

1.RabbitMQ基本概念

2. RabbitMQ 消息模式

3. RabbitMQ交换机类型

 4.RabbitMQ 消息传递保障

 5.RabbitMQ消息持久化

 6.RabbitMQ 集群与高可用性

 7.RabbitMQ 性能优化

8. RabbitMQ 安全性

9. RabbitMQ 管理与监控

10. RabbitMQ 消息协议支持

 11.RabbitMQ 消息确认与拒绝

12. RabbitMQ 死信队列

 13.RabbitMQ 延迟队列

 14.RabbitMQ 集群搭建

15.RabbitMQ 消息追踪

16. RabbitMQ 消息序列化

 17.RabbitMQ 与微服务

18.RabbitMQ,RocketMQ与Kafka特点对比 

19.Spring Boot整合RabbitMQ


1.RabbitMQ基本概念
概念描述
消息代理RabbitMQ是一个消息代理,用于在分布式系统中传递消息。
消息队列消息队列是消息的集合,按照它们被发送的顺序排列。
交换机交换机将消息路由到队列。
绑定绑定是交换机和队列之间的关联,定义了消息如何从交换机路由到队列。
连接连接是客户端和RabbitMQ服务器之间的网络连接。
通道通道是连接中的一个虚拟通道,用于消息传递。
消费者消费者是一个从队列中接收消息的客户端。
生产者生产者是一个向队列发送消息的客户端。
2. RabbitMQ 消息模式
模式描述
简单模式生产者发送消息,消费者接收消息,无需复杂的路由。
工作模式多个消费者可以公平地接收同一条消息进行处理。
发布/订阅模式消息可以被多个订阅者接收,但每个订阅者只接收一次。
路由模式消息根据路由键(routing key)发送到特定的队列。
拓扑模式结合了路由模式的特点,可以定义更复杂的路由逻辑。
3. RabbitMQ交换机类型
交换机类型描述使用场景
Direct根据消息的路由键将消息发送到与之完全匹配的队列。当需要精确匹配路由键时使用。
Fanout将消息广播到与之绑定的所有队列,忽略路由键。当需要将消息发送到多个队列时使用。
Topic根据消息的路由键与队列绑定时指定的路由键模式匹配程度,将消息路由到一个或多个队列。当需要根据模式匹配路由键时使用。
Headers根据消息的标头信息来决定消息的路由。当需要根据消息的标头信息来路由消息时使用。
 4.RabbitMQ 消息传递保障
保障级别描述
无保障消息可能会丢失。
持久性消息被存储在磁盘上,提高消息的持久性。
确认消息确认机制确保消息被正确处理。
死信队列消息在无法被消费时,会被发送到死信队列。
优先级队列消息根据优先级进行排序,高优先级的消息先被消费。
 5.RabbitMQ消息持久化
持久化项描述
队列持久化当队列被声明为持久化时,即使RabbitMQ服务器重启,队列也不会丢失。
消息持久化当消息被标记为持久化时,即使RabbitMQ服务器重启,消息也不会丢失。但请注意,持久化消息会降低性能。
交换机持久化交换机本身通常不需要持久化,因为交换机只定义了消息路由的逻辑,而不是存储消息。但某些交换机类型(如topic交换机)的绑定可能需要持久化。
持久化策略可以设置持久化策略来指定哪些队列应该被持久化,以及何时将内存中的消息持久化到磁盘。
事务使用事务机制保证消息传递的原子性。在channel上开启。
 6.RabbitMQ 集群与高可用性
概念描述
集群多个RabbitMQ节点协同工作,提供负载均衡和故障转移。
镜像队列队列在多个节点上镜像,提高消息的可用性。
故障转移当一个节点失败时,其他节点可以接管其工作。
持久化队列队列和消息都被持久化存储,确保在节点故障时消息不会丢失。
 7.RabbitMQ 性能优化
优化策略描述
预取限制控制消费者一次从队列中获取的消息数量。
消息批处理批量处理消息以减少网络开销。
索引对队列中的消息进行索引,加快消息检索速度。
负载均衡通过集群和镜像队列实现负载均衡。
资源监控监控节点和队列的资源使用情况,及时调整配置。
8. RabbitMQ 安全性
安全特性描述
用户认证使用用户名和密码进行认证。
访问控制根据用户权限控制对资源的访问。
传输层安全使用TLS加密客户端和服务器之间的通信。
网络隔离将RabbitMQ部署在受保护的网络区域中。
审计日志记录重要的安全事件和系统操作。
9. RabbitMQ 管理与监控
管理工具描述
管理界面提供一个Web界面用于管理RabbitMQ节点和队列。
命令行工具使用RabbitMQ提供的命令行工具进行管理。
监控插件安装监控插件,如Prometheus,进行性能监控。
日志文件查看RabbitMQ的日志文件以了解系统状态和问题诊断。
10. RabbitMQ 消息协议支持
协议描述
AMQP高级消息队列协议,RabbitMQ的核心协议。
STOMP一个简单的文本协议,用于客户端消息传递。
MQTT轻量级的消息传输协议,适用于物联网场景。
HTTP通过HTTP协议进行消息传递。
 11.RabbitMQ 消息确认与拒绝
机制描述
手动确认消费者在处理完消息后手动确认。
自动确认消费者接收到消息后自动确认。
消息拒绝消费者无法处理消息时,可以选择拒绝该消息。
幂等性确保消息即使重复传递也不会被多次处理。
12. RabbitMQ 死信队列
死信队列配置描述
死信队列当消息无法被消费时,会被发送到死信队列。
死信路由定义消息成为死信的条件,如TTL(生存时间)过期。
死信交换机死信队列可以绑定到特定的交换机。
 13.RabbitMQ 延迟队列
延迟队列配置描述
延迟消息消息在指定的延迟时间后才会变为可用。
延迟插件使用延迟插件来实现延迟队列。或者利用死信队列属性特点,实现延迟队列的效果
定时任务使用外部定时任务触发延迟消息的可用性。
 14.RabbitMQ 集群搭建
集群组件描述
节点RabbitMQ集群中的一个独立服务器。
集群形成通过特定的协议和端口使节点相互发现和通信。
集群形成通过特定的协议和端口使节点相互发现和通信。
镜像队列队列在多个节点上进行镜像,以提高可用性和负载均衡。
故障转移集群中的节点可以自动接管失败节点的任务。
元数据同步集群中的节点会同步元数据,以保持一致性。
15.RabbitMQ 消息追踪
追踪机制描述
消息ID每条消息都有一个唯一的ID,用于追踪。
插件使用如rabbitmq_tracing插件来追踪消息。
日志文件查看RabbitMQ的日志文件,了解消息的传递过程。
管理界面通过RabbitMQ的管理界面查看消息状态。
16. RabbitMQ 消息序列化
序列化格式描述
JSON轻量级的数据交换格式,易于人阅读和编写。
XML标记语言,用于存储和传输数据。
MessagePack高效的二进制格式,比JSON更紧凑。
Protobuf由Google开发的高性能序列化框架。
 17.RabbitMQ 与微服务
微服务应用描述
服务解耦微服务之间通过RabbitMQ传递消息,实现解耦。
异步处理服务通过RabbitMQ异步处理任务,提高效率。
流量削峰使用RabbitMQ缓存消息,平滑处理高流量。
服务发现服务通过RabbitMQ实现发现和通信。
18.RabbitMQ,RocketMQ与Kafka特点对比 
特性/中间件RabbitMQRocketMQKafka
官网rabbitmq.comrocketmq.apache.orgkafka.apache.org
开发语言ErlangJavaScala/Java
消息模型队列、发布/订阅队列、发布/订阅、事务、顺序消息队列、发布/订阅、流处理
持久性支持支持支持
路由功能支持支持有限支持
集群支持支持支持支持
事务支持支持不支持
消息确认支持支持支持
死信队列支持支持支持
优先级队列支持支持支持
消息追踪插件支持支持社区插件支持
消息大小限制约2MB4~8MB约1MB
性能高吞吐量,低延迟高吞吐量,低延迟极高吞吐量,延迟较高
使用场景通用消息队列金融级消息队列大数据实时处理
社区活跃度非常高
事务性消息支持支持不支持
顺序消息不原生支持支持不原生支持
批处理能力一般一般优秀
数据倾斜处理一般优秀优秀
跨机房同步支持支持支持

 注意,上表中提到的“消息大小限制”是一个大致的数字,具体限制可能会因配置和中间件的版本不同而有所变化。此外,每个中间件的具体特性和最佳实践可能随时间而发展,因此建议查阅最新的官方文档以获得最准确的信息。

19.Spring Boot整合RabbitMQ

下边用一个示例,演示利用死信队列的特性实现延迟队列的效果;

   19.1 添加RabbitMQ依赖

首先,确保你的Spring Boot项目中已经添加了RabbitMQ的依赖。如果你使用Maven,可以在pom.xml文件中添加如下依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

19.2 配置RabbitMQ连接信息

application.propertiesapplication.yml中配置RabbitMQ连接信息:

spring.rabbitmq.addresses=your_rabbitmq_server_address
spring.rabbitmq.username=your_username
spring.rabbitmq.password=your_password
spring.rabbitmq.virtual-host=your_virtual_host

19.3 定义死信队列和延迟队列

其实没有专门的queue类型是死信队列,都是普通的queue类型,只是在普通的queue中设置了x-dead-letter-exchange,然后指定另一个队列来接收这个队列超时未消费的消息,接收的那个队列就称作死信队列,这个设置了超时的队列,可以暂且叫它延迟队列吧。死信队列(DLQ)是用于存储无法被正常消费的消息。可以创建一个普通的队列作为延迟队列,然后配置其TTL(生存时间)和死信交换机,使得当消息在延迟队列中生存时间超过TTL后,消息会被发送到死信队列。

@Bean
public Queue delayQueue() {Map<String, Object> arguments = new HashMap<>();arguments.put("x-dead-letter-exchange", "deadLetterExchange");arguments.put("x-dead-letter-routing-key", "deadLetterRoutingKey");arguments.put("x-message-ttl", 5000); // 设置消息的TTL为5000毫秒return new Queue("delayQueue", true, false, false, arguments);
}@Bean
public Queue deadLetterQueue() {return new Queue("deadLetterQueue", true, false, false);
}@Bean
public Exchange deadLetterExchange() {return new DirectExchange("deadLetterExchange", true, false);
}

19.4绑定死信队列

将死信队列绑定到死信交换机,并指定路由键:

@Bean
public Binding deadLetterBinding(Queue deadLetterQueue, Exchange deadLetterExchange) {return BindingBuilder.bind(deadLetterQueue).to(deadLetterExchange).with("deadLetterRoutingKey");
}

19.5 发送消息到延迟队列

 发送消息到delayQueue,消息将被存储直到TTL过期:

@Autowired
private RabbitTemplate rabbitTemplate;public void sendDelayedMessage(String message) {rabbitTemplate.convertAndSend("delayQueue", message);
}

19.6 消费死信队列中的消息

创建一个消费者监听死信队列,以处理过期的消息:

@Component
public class DeadLetterConsumer {@RabbitListener(queues = "deadLetterQueue")public void receiveDeadLetter(String message) {// 处理死信消息System.out.println("Received dead letter message: " + message);}
}

通过以上步骤,在Spring Boot应用中整合RabbitMQ,并通过死信队列特性实现延迟队列的效果。消息在延迟队列中超过预设的TTL后,将自动成为死信,并被发送到配置的死信队列中,从而实现了延迟处理消息的需求。

个人感觉RabbitMQ比RocketMQ和Kafka要简单,而且管理起来也方便,而且RabbitMQ性能也不错,而且功能也能满足绝大部分企业项目要求,可以作为首选。

相关文章:

RabbitMQ知识点总结和复习

之前项目中用到RabbitMQ的场景主要是订单信息的传递&#xff0c;还有就是利用RabbitMQ的死信队列属性设置&#xff0c;实现延迟队列效果&#xff0c;实现超时支付取消功能&#xff0c;以及在两个不同项目中传递数据等场景。 最近几年的工作中都是一直用的RabbitMQ&#xff0c;…...

ContEA阅读笔记

Facing Changes: Continual Entity Alignment for Growing Knowledge Graphs 面对变化&#xff1a;不断增长的知识图谱的持续实体对齐 Abstract 实体对齐是知识图谱(KG)集成中一项基本且重要的技术。多年来&#xff0c;实体对齐的研究一直基于知识图谱是静态的假设&#xff…...

使用nvm切换nodejs版本

查看可以安装的版本&#xff1a; 使用nvm list显示已安装的nodejs版本&#xff1a; 选择一个版本下载&#xff1a; 切换对应的版本&#xff1a;...

机器学习_KNN算法

机器学习_KNN算法 K-近邻&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;算法是一种基本的机器学习分类和回归算法 其核心思想是&#xff1a;如果一个样本在特征空间中的k个最相似&#xff08;即特征空间中最邻近&#xff09;的样本中的大多数属于某一个类别…...

学QT的第一天~

#include "mywidget.h" MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { //窗口相关设置// this->resize(427,330); this->setFixedSize(427,330); //设置图标 this->setWindowIcon(QIcon("C:\\Users\\Admin\\Desktop\\pictrue\\dahz.jpg&q…...

《QT实用小工具·四十九》QT开发的轮播图

1、概述 源码放在文章末尾 该项目实现了界面轮播图的效果&#xff0c;包含如下特点&#xff1a; 左右轮播 鼠标悬浮切换&#xff0c;无需点击 自动定时轮播 自动裁剪和缩放不同尺寸图片 任意添加、插入、删除 单击事件&#xff0c;支持索引和自定义文本 界面美观&#xff0c;圆…...

uniapp 自定义 App启动图

由于uniapp默认的启动界面太过普通 所以需要自定义个启动图 普通的图片不可以过不了苹果的审核 所以使用storyboard启动图 生成 storyboard 的网站&#xff1a;初雪云-提供一站式App上传发布解决方案...

39-1 Web应用防火墙 - WAF应用程序层绕过

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、双重URL编码绕过 什么是URL编码 URL编码是一种将特殊字符转为%加上其ASCII值的方式,以确保在URL中传输时不会被误解或导致错误。例如,字母"s"的URL编码是"…...

【1】STM32·FreeRTOS·新建工程模板【一步到位】

目录 一、获取FreeRTOS源码 二、FreeRTOS源码简介 2.1、FreeRTOS源码文件内容 2.2、FreeRTOS内核 2.3、Source文件夹 2.4、portable文件夹 三、FreeRTOS手把手移植 3.1、FreeRTOS移植准备 3.2、FreeRTOS移植步骤 3.2.1、将 FreeRTOS 源码添加至基础工程、头文件路径等…...

linux下sd卡的备份与还原

在Ubuntu上制作SD卡备份镜像&#xff0c;你可以使用dd命令。以下是一个基本的步骤和示例代码&#xff1a; 插入SD卡到电脑。确定SD卡设备路径&#xff0c;使用lsblk或sudo fdisk -l命令。确定备份镜像文件的路径。使用dd命令制作备份。 示例代码&#xff1a; bash# 查看连接的…...

Spring Boot项目中集成Logback作为日志框架-笔记

在Spring Boot项目中集成Logback作为日志框架是一个标准做法&#xff0c;因为Spring Boot默认就使用Logback作为日志系统。以下是集成Logback的步骤&#xff1a; 1. 默认集成 Spring Boot会自动配置Logback&#xff0c;所以通常情况下&#xff0c;你不需要添加任何额外的依赖或…...

Python_GUI框架 PyQt 与 Pyside6的介绍

Python_GUI框架 PyQt 与 Pyside6的介绍 一、简介 在Python的GUI&#xff08;图形用户界面&#xff09;开发领域&#xff0c;PyQt和PySide6是两个非常重要的工具包。它们都基于Qt库&#xff0c;为Python开发者提供了丰富的GUI组件和强大的功能。当然Python也有一些其他的GUI工…...

Github入门

GitHub 入门指南&#xff1a;从零开始学习使用 GitHub GitHub 是全球最大的代码托管平台之一&#xff0c;不仅是开发者们交流与协作的重要场所&#xff0c;也是学习与分享优秀代码的宝库。无论你是一位新手开发者还是经验丰富的专家&#xff0c;GitHub 都是你必须掌握的利器之…...

【Web漏洞指南】XSS漏洞详细指南

【Web漏洞指南】XSS漏洞详细指南 概述XSS的三种类型执行任意 JS 代码的方式在原始HTML中注入绕过手法在 HTML标记内注入绕过手法在JavaScript代码中注入绕过手法其他绕过手法XSS常见有效载荷检索Cookies窃取页面内容键盘记录器查找内部IP地址端口扫描器自动填充密码捕获窃取 Po…...

Labels and Databases for Mac:强大的标签与数据库管理工具

Labels and Databases for Mac是一款集标签制作与数据库管理于一体的强大工具&#xff0c;专为Mac用户打造&#xff0c;旨在提供高效、便捷的标签制作与数据管理体验。 这款软件拥有丰富的内置标签格式&#xff0c;用户可轻松创建各种标签、信封和卡片&#xff0c;满足个性化需…...

视频降噪算法 Meshflow 介绍

介绍 Meshflow 视频降噪算法来自于 2017 年电子科技大学一篇高质量论文。 该论文提出了一个新的运动模型MeshFlow&#xff0c;它是一个空间平滑的稀疏运动场 (spatially smooth sparse motion field)&#xff0c;其运动矢量 (motion vectors) 仅在网格顶点 (mesh vertexes) 处…...

情感类ppt素材

小清新手绘插画风毕业季毕业相册同学录画册纪念册PPT下载 - 觅知网这是一张关于清新毕业相册的PPT模板&#xff0c;清新风格设计&#xff0c;加上风为装饰元素&#xff0c;包含毕业相册、毕业季、毕业、同学、纪念等主题内容&#xff0c;也可用作毕业相册PPT、毕业季PPT、毕业P…...

专家解读 | NIST网络安全框架(1):框架概览

随 着信息技术的快速发展&#xff0c;组织面临着越来越严峻的网络安全挑战。NIST网络安全框架&#xff08;NIST Cybersecurity Framework&#xff0c;CSF&#xff09;是一个灵活的综合性指南&#xff0c;旨在协助各类组织建立、改进和管理网络安全策略&#xff0c;以加强网络安…...

【NodeMCU实时天气时钟温湿度项目 3】连接SHT30传感器,获取并显示当前环境温湿度数据(I2C)

今天&#xff0c;我们开始第三个专题&#xff1a;连接SHT30温湿度传感器模块&#xff0c;获取当前环境实时温湿度数据&#xff0c;并显示在1.3寸TFT液晶显示屏上。 第一专题内容&#xff0c;请参考 【NodeMCU实时天气时钟温湿度项目 1】连接点亮SPI-TFT屏幕和UI布局设计…...

Unity3D DOTween

简单介绍一下 DOTween 插件的使用。 导入插件 先到 Asset Store 获取 DOTween 插件&#xff0c;然后在 Package Manager 的 My Assets 中搜索&#xff0c;下载并导入插件。 导入后&#xff0c;会自动弹出一个窗口&#xff0c;提示需要先对插件进行配置。 点击上图中的按钮&am…...

罗宾斯《管理学》第13版/教材讲解/考研真题视频课程/网课

本课程是罗宾斯《管理学》&#xff08;第13版&#xff09;精讲班&#xff0c;为了帮助参加研究生招生考试指定考研参考书目为罗宾斯《管理学》&#xff08;第13版&#xff09;的考生复习专业课&#xff0c;我们根据教材和名校考研真题的命题规律精心讲解教材章节内容。 序号名…...

docker-compose启动mysql4.7环境搭建

注意&#xff1a; 下面挂载的目录需要自己创建文件夹比如&#xff1a; /home/dockerInfo/composeInfo/volumes/mysqlVolume/var/log/mysql&#xff08;数据文件&#xff09; /home/dockerInfo/composeInfo/volumes/mysqlVolume/var/lib/mysql&#xff08;日志文件&#xff09;…...

StarryCoding入门教育赛2 题解 C++代码(推荐学习)

比赛地址&#xff1a;https://www.starrycoding.com/contest/6 比赛介绍 系列赛名称&#xff1a;StarryCoding 入门教育赛难度&#xff1a;语法~较低时长&#xff1a; 1.5 1.5 1.5小时比赛时间&#xff1a;约每2-3天一场&#xff0c;一般为晚上18:30~20:00赛后题解&#xff1…...

【JAVA进阶篇教学】第九篇:MyBatis-Plus用法介绍

博主打算从0-1讲解下java进阶篇教学&#xff0c;今天教学第九篇&#xff1a;MyBatis-Plus用法介绍。 在 MyBatis-Plus 3.5.0 中&#xff0c;LambdaQueryWrapper支持多种条件构造方式&#xff0c;除了等于&#xff08;eq&#xff09;、不等于&#xff08;ne&#xff09;、大于&a…...

实时音视频通信的主要矛盾及解决方法

实时音视频通信的主要矛盾及解决方法 实时音视频通信的主要矛盾及解决方法实时音视频通信的主要矛盾矛盾的解决方法增加带宽减少数据量适当增加延时提高网络质量快速准确地评估带宽 总结参考 实时音视频通信的主要矛盾及解决方法 实时音视频通信的主要矛盾 实时音视频通信的主…...

【Delphi 爬虫库 4】使用封装好的 XML 解析库对 XML 数据进行解析

由于官方提供的TXMLDocument组件并不是特别好用&#xff0c;有着体积大&#xff0c;速度慢&#xff0c;调用不方便等缺点。 这里直接利用封装好的XML 解析库来对Xml数据进行解析与生成。 文章目录 1、生成XML文件2、解析XML文件3、生成带注释的XML文件4、删除XML文件节点 1、生…...

Flask简介

Flask简介 安装概述使用PyCharm创建一个Flask程序 Flask程序的基本结构初始化路由和视图函数启动服务器请求-响应循环 安装 概述 Flask算是小型框架&#xff0c;小到可以称为“微框架”。Flask 非常小&#xff0c;因此你一旦能够熟练使用它&#xff0c;很可能就能读懂它所有的…...

神经网络中的归一化

我们今天介绍一下神经网络中的归一化方法~ 之前学到的机器学习中的归一化是将数据缩放到特定范围内&#xff0c;以消除不同特征之间的量纲和取值范围差异。通过将原始数据缩放到一个特定的范围内&#xff0c;比如[0,1]或者[-1,1]&#xff0c;来消除不同特征之间的量纲和取值范围…...

《从Paxos到Zookeeper》——第四、七章:基本概念及原理

目录 第四章 Zookeeper与Paxos 4.1 Zk是什么 4.1.1 Zk特性 4.1.2 Zk基本概念 4.1.2.1 集群角色(Follower, Leader, Observer) 4.1.2.2 数据模型 4.1.2.3 ZNode(数据节点) 4.1.2.4 Session(会话) 4.1.2.5 ACL&#xff08;Access Control Lists&#xff09; 4.1.2.6 Watcher(事件…...

网络演进技术演进:裸纤专线、SDH、MSTP+、OTN、PTN、IP-RAN

前言 文章主要介绍常见名词以及其在各自领域实现的功能价值。 01 裸纤 裸光纤&#xff08;裸光纤&#xff09;由运营商提供&#xff0c;是无中继的光纤线路&#xff0c;仅通过配线架连接。相比传统光纤&#xff0c;裸光纤提供纯粹的物理传输路径&#xff0c;无需额外网…...

wordpress图片空间/hao123网址导航

严正声明&#xff1a;本文仅限于技术讨论与分享&#xff0c;严禁用于非法用途当代社会&#xff0c;我们进公司需要门禁卡&#xff0c;出入小区需要门禁卡&#xff0c;门禁系统又称出入管理控制系统(ACCESS CONTROL SYSTEM)&#xff0c; 是一种管理人员进出的智能化管理系统&…...

长春做网站网站/2022年最火的关键词

几乎每天我们都能发现新的关于传授和推广HTML5的资源和文章,我们也在 HTML5 boilerplate 和HTML5 Reset (尽管他们已经超出了HTML5的范畴)给出了HTML5的模板。我们也有无数可以去选择的涵盖HTML5及相关技术的书籍。我们有书架、画廊和分析师去帮助我们处理HTML5的弊端。但是主要…...

怎么看网站是否是div css/今日头条官网登录入口

HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff09;是基于HTTP协议的安全版本&#xff0c;它使用SSL/TLS协议对数据进行加密和身份验证&#xff0c;从而保证通信的安全性和完整性。 HTTPS和HTTP的区别&#xff1a; 安全性&#xff1a;HTTPS通过SSL/TLS协议对数…...

网站访问量统计怎么做/谷歌流量代理代理

摘要&#xff1a; 案例使用最新稳定版本Flink1.14.3。Flink Table和SQL从Flink1.12版本已经成熟&#xff0c;可以在生产上放心使用。Flink Table和SQL从Flink1.12实现了流批统一的所有特性。Flink Table和SQL与Hive集成需要特别注意版本的兼容性。1 需求 需求&#xff1a;Flin…...

西安网站运营/口碑营销推广

fit和transform没有任何关系&#xff0c;仅仅是数据处理的两个不同环节&#xff0c;之所以出来fit_transform这个函数名&#xff0c;仅仅是为了写代码方便&#xff0c;会高效一点。sklearn里的封装好的各种算法使用前都要fit&#xff0c;fit相对于整个代码而言&#xff0c;为后…...

保定专业网站制作/企业培训十大热门课程

我们知道,大多数情况下,方法的调用都是发生在相同堆上的两个对象之间,所有组件都在同一台计算机的同一个Java虚拟机的同一个堆空间上执行是最简单的&#xff0c;如果用户端只是个能够执行Java的装置怎么办&#xff1f;如果为了安全性的理由只能让服务器上的程序存取数据库怎么办…...