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

互联网大厂Java求职面试:构建高并发直播平台的架构设计与优化

标题:互联网大厂Java求职面试:构建高并发直播平台的架构设计与优化

引言

在互联网大厂的Java求职面试中,技术总监级别的面试官通常会提出一系列复杂且前沿的技术问题,以评估候选人的真实技术水平。本篇文章将围绕构建一个千万级用户同时在线的直播平台展开,从系统架构设计到性能调优,再到故障处理机制等多个维度进行深入讨论。

面试场景

第一轮提问

面试官: 您好,郑薪苦,欢迎来到我们的面试环节。首先,请问您如何设计一个能够支持千万级用户同时在线观看的直播系统?

郑薪苦: 哦,这就像在高峰期挤地铁一样,我们要确保每个乘客都能顺利上车,而且车厢内不拥挤。对于直播系统,我首先会考虑使用云原生架构,利用Kubernetes进行容器编排,保证系统的高可用性和弹性伸缩能力。

  • 系统架构设计:我会采用微服务架构,将系统拆分为多个独立的服务,比如用户认证、视频流处理、实时消息推送等。每个服务都可以独立部署和扩展。
  • 技术选型:使用Spring Cloud生态,特别是Spring Cloud Gateway作为API网关,负责请求路由和服务治理;Nginx或Envoy作为反向代理,提升请求处理效率。
  • CDN优化:通过CDN缓存热点内容,减少源站压力,提高用户访问速度。
  • 边缘计算:在靠近用户的边缘节点上部署计算资源,进行视频转码和内容分发,降低延迟。

面试官: 很好,那在实际操作中,您如何解决高并发场景下的性能瓶颈问题?

郑薪苦: 这就像是在繁忙的餐厅里点餐,我们需要高效的厨房管理和快速的上菜流程。

  • 负载均衡:使用Nginx或HAProxy进行负载均衡,分散请求压力。
  • 缓存策略:引入Redis作为分布式缓存,缓存热门直播间的信息和用户状态,减少数据库查询次数。
  • 数据库优化:对MySQL进行分库分表,使用ShardingSphere实现数据分片,提升查询性能。
  • 异步处理:利用消息队列如Kafka或RabbitMQ,异步处理非核心业务逻辑,比如日志记录和通知发送。

面试官: 如果出现突发流量高峰,系统应该如何应对?

郑薪苦: 那就好比突然下起了暴雨,我们需要提前准备好雨伞和雨衣。

  • 限流降级:使用Sentinel进行限流和熔断,防止系统过载。
  • 弹性扩缩容:借助Kubernetes的HPA(Horizontal Pod Autoscaler),根据CPU和内存使用情况动态调整Pod数量。
  • 应急预案:制定详细的应急预案,定期进行全链路压测,发现并解决潜在瓶颈。

第二轮提问

面试官: 在视频内容分发方面,您有哪些具体的技术方案?

郑薪苦: 这就像把美味的食物送到顾客手中,我们需要高效的物流系统。

  • CDN加速:选择合适的CDN服务商,如阿里云CDN或腾讯云CDN,配置合理的缓存策略。
  • P2P传输:结合WebRTC技术,实现用户间的P2P视频传输,减轻服务器负担。
  • 智能调度:基于用户地理位置和网络状况,智能选择最优的CDN节点和传输路径。

面试官: 实时互动消息系统的设计需要注意哪些关键点?

郑薪苦: 就像在派对上聊天,大家都希望自己的声音能被听到。

  • 长连接:使用WebSocket保持客户端与服务器之间的长连接,实现实时通信。
  • 消息队列:利用Kafka或RabbitMQ处理大量消息,确保消息可靠传递。
  • 去重和排序:在消息接收端进行去重和排序,保证用户体验。

面试官: 如何确保直播间的低延迟和音视频同步?

郑薪苦: 这就像是乐队演奏,所有乐器必须同步才能奏出美妙的音乐。

  • 时间戳同步:在音视频数据包中加入时间戳,接收端根据时间戳进行同步播放。
  • 自适应码率:根据网络状况动态调整视频码率,平衡画质和流畅性。
  • 缓冲区管理:合理设置播放缓冲区大小,避免卡顿。

第三轮提问

面试官: 对于UGC内容审核系统,您有什么建议?

郑薪苦: 这就像是在图书馆里筛选书籍,我们需要确保内容健康有益。

  • 自动审核:利用AI技术,如深度学习模型,对上传的内容进行初步审核。
  • 人工复审:设立专门的审核团队,对疑似违规内容进行二次审核。
  • 举报机制:提供用户举报功能,及时发现和处理不良内容。

面试官: 直播打赏和虚拟礼物系统如何设计?

郑薪苦: 这就像是在游戏里买装备,玩家需要即时反馈。

  • 支付网关:集成第三方支付平台,如支付宝或微信支付,提供便捷的支付方式。
  • 事务一致性:使用分布式事务框架如Seata,确保打赏金额准确无误。
  • 实时更新:通过WebSocket推送打赏信息,增强互动体验。

面试官: 最后一个问题,如何保障多端内容的一致性?

郑薪苦: 这就像是在不同设备上看同一部电影,剧情不能有偏差。

  • 数据同步:使用分布式数据库如MongoDB,实现跨设备的数据同步。
  • 版本控制:引入Git等版本控制系统,管理内容更新历史。
  • 一致性哈希:利用一致性哈希算法,确保内容分片的一致性。

总结

经过三轮提问,我们深入了解了郑薪苦在构建高并发直播平台方面的技术实力和实战经验。他的回答不仅展示了扎实的基础知识,还体现了创新思维和解决问题的能力。请回家等待我们的通知。

技术详解

系统架构设计

在构建高并发直播平台时,系统架构设计至关重要。采用微服务架构可以将复杂的系统拆分为多个独立的服务,每个服务专注于特定的功能模块,便于开发、测试和部署。Spring Cloud生态提供了丰富的工具和组件,如Eureka用于服务注册与发现,Ribbon用于客户端负载均衡,Feign用于声明式REST客户端,Hystrix用于服务熔断和降级,Zuul或Spring Cloud Gateway作为API网关。

// 示例代码:Spring Cloud Gateway配置
@Configuration
public class GatewayConfig {@Beanpublic RouteLocator customRouteLocator(RouteLocatorBuilder builder) {return builder.routes().route(r -> r.path("/video/**").uri("lb://video-service")).route(r -> r.path("/chat/**").uri("lb://chat-service")).build();}
}

CDN优化

CDN(Content Delivery Network)是提升用户体验的重要手段。通过在全球范围内部署CDN节点,可以将静态资源缓存到离用户最近的位置,减少源站压力,提高访问速度。常见的CDN服务商有阿里云CDN、腾讯云CDN和Akamai等。

# 示例配置:Nginx CDN缓存
http {proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;server {location /static/ {proxy_cache my_cache;proxy_pass http://origin_server;}}
}

边缘计算

边缘计算是一种新兴的技术趋势,通过在靠近用户的边缘节点上部署计算资源,可以显著降低延迟,提高响应速度。AWS Lambda@Edge、Azure Functions和Google Cloud Functions都是常用的边缘计算平台。

// 示例代码:AWS Lambda@Edge函数
exports.handler = async (event) => {const request = event.Records[0].cf.request;request.headers['x-edge-ip'] = [{ key: 'X-Edge-IP', value: event.Records[0].cf.config.distributionDomainName }];return request;
};

负载均衡

负载均衡是解决高并发问题的有效手段。Nginx和HAProxy是两个流行的开源负载均衡器,可以通过配置实现请求的均匀分配。

# 示例配置:Nginx负载均衡
upstream backend {server 192.168.1.101;server 192.168.1.102;server 192.168.1.103;
}server {listen 80;location / {proxy_pass http://backend;}
}

缓存策略

Redis是一个高性能的键值存储系统,非常适合用作分布式缓存。通过合理设计缓存策略,可以有效减少数据库查询次数,提升系统性能。

// 示例代码:Spring Data Redis缓存
@Configuration
@EnableCaching
public class RedisConfig {@Beanpublic RedisCacheManager cacheManager(RedisConnectionFactory connectionFactory) {return RedisCacheManager.builder(connectionFactory).cacheDefaults(RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(10))).build();}
}

数据库优化

对于大规模数据存储,分库分表是一种常见的解决方案。ShardingSphere是一个强大的分库分表中间件,可以帮助开发者轻松实现数据分片。

<!-- 示例配置:ShardingSphere分库分表 -->
<sharding:standard-strategy id="databaseStrategy" sharding-column="user_id" precise-algorithm-class="com.example.sharding.DatabaseShardingAlgorithm" /><sharding:table-rule logic-table="t_order" actual-data-nodes="ds${0..1}.t_order${0..1}" database-strategy-ref="databaseStrategy" table-strategy-ref="tableStrategy" />

异步处理

消息队列是实现异步处理的重要工具。Kafka和RabbitMQ是两个广泛使用的开源消息队列系统。

// 示例代码:Kafka生产者
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");KafkaProducer<String, String> producer = new KafkaProducer<>(props);
producer.send(new ProducerRecord<>("my-topic", "key", "value"));
producer.close();

限流降级

限流和降级是保护系统免受过载影响的重要手段。Sentinel是阿里巴巴开源的一款流量控制组件,提供了丰富的限流和熔断策略。

// 示例代码:Sentinel限流
@SentinelResource(value = "resource", blockHandler = "handleException")
public void accessResource() {// 业务逻辑
}public void handleException(BlockException ex) {// 异常处理
}

弹性扩缩容

Kubernetes的HPA(Horizontal Pod Autoscaler)可以根据CPU和内存使用情况动态调整Pod数量,实现弹性扩缩容。

# 示例配置:Kubernetes HPA
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:name: example-hpa
spec:scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: example-deploymentminReplicas: 2maxReplicas: 10metrics:- type: Resourceresource:name: cputarget:type: UtilizationaverageUtilization: 50

应急预案

制定详细的应急预案,定期进行全链路压测,发现并解决潜在瓶颈,是保障系统稳定运行的关键。

# 示例命令:全链路压测
ab -n 100000 -c 1000 http://example.com/api/test

视频内容分发

CDN加速、P2P传输和智能调度是视频内容分发的关键技术。

// 示例代码:WebRTC P2P传输
const pc = new RTCPeerConnection();
pc.createOffer().then(offer => pc.setLocalDescription(offer));

实时互动消息系统

WebSocket和消息队列是实现实时互动消息系统的核心技术。

// 示例代码:WebSocket消息推送
@ServerEndpoint("/chat")
public class ChatServer {@OnOpenpublic void onOpen(Session session) {// 连接建立}@OnMessagepublic void onMessage(String message, Session session) {// 消息处理}
}

音视频同步

时间戳同步、自适应码率和缓冲区管理是确保音视频同步的关键技术。

// 示例代码:时间戳同步
videoElement.addEventListener('timeupdate', () => {const currentTime = videoElement.currentTime;audioElement.currentTime = currentTime;
});

UGC内容审核

自动审核、人工复审和举报机制是构建UGC内容审核系统的重要组成部分。

# 示例代码:深度学习模型审核
from tensorflow.keras.models import load_model
model = load_model('content_filter.h5')
prediction = model.predict(image)

直播打赏和虚拟礼物系统

支付网关、事务一致性和实时更新是设计直播打赏和虚拟礼物系统的关键点。

// 示例代码:Seata分布式事务
@GlobalTransactional
public void processDonation(Donation donation) {paymentService.charge(donation);notificationService.notify(donation);
}

多端内容一致性

数据同步、版本控制和一致性哈希是保障多端内容一致性的关键技术。

// 示例代码:MongoDB数据同步
MongoClient client = MongoClients.create("mongodb://localhost:27017");
MongoDatabase database = client.getDatabase("example");
MongoCollection<Document> collection = database.getCollection("content");
collection.insertOne(new Document("title", "Example Content"));

常见陷阱和优化方向

在构建高并发直播平台时,常见的陷阱包括过度设计、忽视性能瓶颈和缺乏应急预案。优化方向则包括合理选择技术栈、持续性能监控和定期演练。

相关技术的发展趋势和替代方案比较

随着技术的不断发展,新的工具和框架不断涌现。例如,Istio和Linkerd是两个流行的Service Mesh解决方案,可以在微服务架构中实现高级流量管理和安全策略。此外,Serverless架构和边缘计算也成为越来越多企业的选择。

郑薪苦的幽默金句

  • “高并发就像高峰期挤地铁,我们要确保每个乘客都能顺利上车,而且车厢内不拥挤。”
  • “突发流量高峰就像突然下起了暴雨,我们需要提前准备好雨伞和雨衣。”
  • “实时互动消息系统就像在派对上聊天,大家都希望自己的声音能被听到。”
  • “音视频同步就像乐队演奏,所有乐器必须同步才能奏出美妙的音乐。”
  • “UGC内容审核就像在图书馆里筛选书籍,我们需要确保内容健康有益。”

希望这篇文章能够帮助读者深入了解构建高并发直播平台的技术细节和最佳实践,同时也为Java求职者提供宝贵的面试经验和灵感。

相关文章:

互联网大厂Java求职面试:构建高并发直播平台的架构设计与优化

标题&#xff1a;互联网大厂Java求职面试&#xff1a;构建高并发直播平台的架构设计与优化 引言 在互联网大厂的Java求职面试中&#xff0c;技术总监级别的面试官通常会提出一系列复杂且前沿的技术问题&#xff0c;以评估候选人的真实技术水平。本篇文章将围绕构建一个千万级…...

Ruby 循环与迭代器

Ruby 循环与迭代器 循环迭代器timesuptostep 循环 。。。。 迭代器 迭代器本质上可以理解为是循环的一种类型 times 3.times do print "Ho! " end begin Ho! Ho! Ho! end上述代码表示我们对当前 block 部分中的内容循环三次。最终&#xff0c;我们打印出了三个…...

pyenv简单的Python版本管理器(macOS版)

问题 python版本是真的多&#xff0c;需要用一个版本管理器管理Python多版本安装在同一台机器的问题。接下来&#xff0c;我们就尝试使用pyenv来管理。 安装pyenv brew update brew install pyenv配置Zsh echo export PYENV_ROOT"$HOME/.pyenv" >> ~/.zshr…...

Automatic Recovery of the Atmospheric Light in Hazy Images论文阅读

Automatic Recovery of the Atmospheric Light in Hazy Images 1. 论文的研究目标与实际意义1.1 研究目标1.2 实际问题与产业意义2. 论文的创新方法、模型与公式2.1 方法框架2.1.1 方向估计(Orientation Estimation)2.1.2 幅值估计(Magnitude Estimation)2.2 与传统方法的对…...

Vuex和Vue的区别

Vue和Vuex有着不同的功能和定位&#xff0c;主要区别如下&#xff1a; 概念与功能 - Vue&#xff1a;是一个构建用户界面的JavaScript框架&#xff0c;专注于视图层的开发&#xff0c;采用组件化的方式构建应用程序&#xff0c;通过数据绑定和指令系统&#xff0c;能方便地…...

全国青少年信息素养大赛 Python编程挑战赛初赛 内部集训模拟试卷八及详细答案解析

信息素养大赛初赛Python编程模拟试卷八 博主推荐 所有考级比赛学习相关资料合集【推荐收藏】1、Python比赛 信息素养大赛Python编程挑战赛 蓝桥杯python选拔赛真题详解...

RabbitMQ 消息模式实战:从简单队列到复杂路由(二)

进阶探索&#xff1a;工作队列模式 工作队列模式剖析 工作队列模式&#xff0c;也被称为任务队列模式&#xff0c;是对简单队列模式的一种扩展和优化&#xff0c;旨在解决当任务量较大时&#xff0c;单个消费者无法快速处理所有任务的问题 。在工作队列模式中&#xff0c;依然…...

崩坏星穹铁道风堇前瞻养成攻略 崩坏星穹铁道风堇配队推荐

风堇是崩坏星穹铁道3.3上半版本即将登场的一名全新五星角色&#xff0c;她的机制和强度都还不错&#xff0c;今天就给大家一些养成攻略。 一、突破材料准备 1.基础材料&#xff1a;旅情见闻 3 个冒险记录 3 个漫游指南 289 个命运的足迹 8 个 2.特供材料&#xff1a;思量的种…...

如何利用 Python 爬虫按关键字搜索京东商品:实战指南

在电商领域&#xff0c;京东作为国内知名的电商平台&#xff0c;拥有海量的商品数据。通过 Python 爬虫技术&#xff0c;我们可以高效地按关键字搜索京东商品&#xff0c;并获取其详细信息。这些信息对于市场分析、选品上架、库存管理和价格策略制定等方面具有重要价值。本文将…...

阿里云的网络有哪些

阿里云的网络类型丰富&#xff0c;主要包括以下几种&#xff1a; 专有网络 VPC&#xff08;Virtual Private Cloud&#xff09;1&#xff1a;是用户基于阿里云创建的自定义私有网络。不同的专有网络之间二层逻辑隔离&#xff0c;用户可在自己创建的专有网络内创建和管理云产品…...

【微信小程序】webp资源上传失败

正文 快速开发了一个小程序&#xff0c;图片资源占比较多&#xff0c;于是从 png 到 jpg 压缩&#xff0c;勉强满足了 2MB 的限制&#xff0c;不用另外准备 cdn。 但这样肯定不适合&#xff0c;进一步更新时&#xff0c;空间便会爆表。 于是花了点时间&#xff0c;将所有的…...

鸿蒙 ArkUI - ArkTS 组件 官方 UI组件 合集

ArkUI 组件速查表 鸿蒙应用开发页面上需要实现的 UI 功能组件如果在这 100 多个组件里都找不到&#xff0c;那就需要组合造轮子了 使用技巧&#xff1a;先判断需要实现的组件大方向&#xff0c;比如“选择”、“文本”、“信息”等&#xff0c;或者是某种形状比如“块”、“图…...

科学养生指南:解锁健康生活的密码

健康是人生最宝贵的财富&#xff0c;科学养生则是守护这笔财富的关键。即使抛开传统中医理论&#xff0c;现代科学也为我们提供了诸多实用的养生方法。​ 合理饮食是健康养生的基石。人体需要碳水化合物、蛋白质、脂肪、维生素和矿物质等多种营养物质维持运转。日常饮食应遵循…...

Linux的进程管理和用户管理

gcc与g的区别 比如有两个文件&#xff1a;main.c mainc.cpp&#xff08;分别是用C语言和C语言写的&#xff09;如果要用gcc编译&#xff1a; gcc -o mainc main.c gcc -o mainc mainc.cpp -lstdc表明使用C标准库&#xff1b; 区别一&#xff1a; gcc默认只链接C库&#x…...

数据科学和机器学习的“看家兵器”——pandas模块 之五

目录 4.5 pandas 高级数据处理与分析 一、课程目标 二、对数据表格进行处理 (一)行列转置 (二)将数据表转换为树形结构 三、数据表的拼接 (一)merge () 函数的运用 (二)concat () 函数的运用 (三)append () 函数的运用 四、对数据表格的同级运算 五、计算数据表格中数…...

轻量级Web画板Paint Board如何本地部署与随时随地在线绘画分享

文章目录 前言1.关于Paint Board2.本地部署paint-board3.使用Paint Board4.cpolar内网穿透工具安装5.创建远程连接公网地址6.固定Paint Board公网地址 前言 今天我要给大家介绍一款超级轻便、好玩到飞起的Web画板Paint Board&#xff01;这可是创意人手中的秘密武器。无论是刚…...

攻击溯源技术体系:从理论架构到工程化实践的深度剖析

一、攻击溯源的理论基石与模型构建 1.1 形式化理论框架 攻击溯源本质上是基于离散数学与图论的演绎推理过程。通过构建攻击事件有向图&#xff08;AEDG, Attack Event Directed Graph&#xff09;&#xff0c;将网络空间中的每个事件抽象为节点&#xff0c;事件间的因果关系…...

fpga系列 HDL : Microchip FPGA开发软件 Libero Soc 安装 license申请

启动 注册账号&#xff1a;https://login.microchip.com/申请免费许可&#xff1a;https://www.microchipdirect.com/fpga-software-products C:\Windows\System32>vol驱动器 C 中的卷是 Windows卷的序列号是 ****-****为“D:\Microsemi\License.dat”创建环境变量“LM_LICE…...

海康立体相机3DMVS软件使用不同工作模式介绍

文章目录 1. Sensor Calibration&#xff08;传感器标定模式&#xff09;2. Depth&#xff08;深度模式&#xff09;3. RGB-D&#xff08;彩色深度融合模式&#xff09;4. Depalletizing&#xff08;拆垛模式&#xff09;5. Debug&#xff08;调试模式&#xff09;6. Point Clo…...

深度学习、机器学习及强化学习的联系与区别

联系 深度学习与机器学习 &#xff1a;深度学习是机器学习的一个分支。机器学习涵盖众多方法&#xff0c;如决策树、支持向量机等&#xff0c;而深度学习基于神经网络构建多层结构来学习数据特征。深度学习利用反向传播算法和梯度下降等优化方法来训练神经网络模型&#xff0c;…...

75.xilinx复数乘法器IP核调试

&#xff08;83*j&#xff09;*(57j) 935j 正确的是 1971j 分析出现的原因&#xff1a;&#xff08;abj&#xff09;* (cdj) (ac-bd)j(adbc) 其中a,b,c,d都是16bit的有符号数&#xff0c;乘积的结果为保证不溢出需要32bit存储&#xff0c;最终的复数乘法结果是两个32b…...

【笔记】CosyVoice 模型下载小记:简单易懂的两种方法对比

#工作记录 笔记标签&#xff1a;#CosyVoice 模型 #模型下载 #ModelScope #Git LFS #语音合成开发 一、强烈推荐&#xff1a;用 ModelScope SDK 下载&#xff08;简单又靠谱&#xff09; 1.1 好处多多 不容易出错&#xff1a;能自动把模型需要的所有东西都下载好&#xff0c…...

本地部署 私有云网盘 Nextcloud 并实现外部访问

Nextcloud 是一款开源免费的私有云盘系统&#xff0c;可以快速地搭建一套属于自己的云同步网盘&#xff0c;从而实现跨设备的文件同步、文件共享、以及团队协作等功能。Nextcloud 功能强大且完全开源&#xff0c;拥有庞大的开源社区支持。 本文将详细的介绍如何利用 Docker 在…...

黑马程序员C++2024版笔记 第0章 C++入门

1.C代码的基础结构 以hello_world代码为例&#xff1a; 预处理指令 #include<iostream> using namespace std; 代码前2行是预处理指令&#xff0c;即代码编译前的准备工作。&#xff08;编译是将源代码转化为可执行程序.exe文件的过程&#xff09; 主函数 主函数是…...

D3485:一款高性能RS-485收发器解析

D3485是一款5V供电、半双工RS-485收发器&#xff0c;广泛应用于智能电表、工业控制和安防监控等领域。它内部包含一路驱动器和一路接收器&#xff0c;采用限摆率驱动器设计&#xff0c;能有效减少电磁干扰&#xff08;EMI&#xff09;和反射&#xff0c;支持高达10Mbps的无差错…...

std::deque和std::vector对比

std::deque和std::vector都是 C标准库中非常重要的容器&#xff0c;但它们的设计目标和优化方向不同&#xff0c;因此各有适用场景。std::deque并没有取代std::vector&#xff0c;原因主要在于以下几个方面&#xff1a; 1.性能特点不同 1.1std::vector的优势 • 连续存储&am…...

【蓝桥杯省赛真题49】python偶数 第十五届蓝桥杯青少组Python编程省赛真题解析

python偶数 第十五届蓝桥杯青少组python比赛省赛真题详细解析 博主推荐 所有考级比赛学习相关资料合集【推荐收藏】1、Python比赛 信息素养大赛Python编程挑战赛 蓝桥杯python选拔赛真题详解...

15分钟决胜项目管理:碎片时间的高效拆解术

作为项目经理&#xff0c;你是否经常觉得一天像打仗&#xff1f;会议连轴转、消息轰炸、计划赶不上变化……时间总是不够用。但真相是&#xff1a;高效的人并不是时间更多&#xff0c;而是更会“切分时间”。试试“15分钟法则”——每天用几段碎片时间&#xff0c;就能让工作从…...

计算机网络:什么是电磁波以及有什么危害?

电磁波详解 电磁波(Electromagnetic Wave)是由电场和磁场相互激发、在空间中传播的能量形式。它既是现代通信的基石(如手机、Wi-Fi、卫星信号),也是自然界中光、热辐射等现象的本质。以下从定义、产生、特性、分类及应用全面解析: 一、电磁波的本质 1. 核心定义 电场与…...

Docker部署单节点Elasticsearch

1.Docker部署单节点ES 1.前置条件 配置内核参数 echo "vm.max_map_count262144" >> /etc/sysctl.conf sysctl -w vm.max_map_count262144准备密码 本文所有涉及密码的配置&#xff0c;均使用通用密码 Zzwl2024。 生产环境&#xff0c;请用密码生成器生成20…...

Docker构建Nginx、PHP、MySQL及WordPress部署及解释

目录 一、构建Nginx 二、构建PHP 三、构建MySQL 四、启动容器 五、测试 六、部署网站 一、构建Nginx 创建目录并进入目录 bash 复制 mkdir /opt/nginx cd /opt/nginx mkdir /opt/nginx&#xff1a;在 /opt 目录下创建一个名为 nginx 的目录。 cd /opt/nginx&#x…...

计算机网络:蜂窝网络和WiFi网络使用的射频信号有什么区别?

— 频段设计,蜂窝网络,比如4G LTE或5G,使用的频段通常由各国政府机构分配,例如在Sub-6GHz范围内,还有一些高频的毫米波。而WiFi主要使用的是2.4GHz和5GHz的ISM(工业、科学、医疗)免许可频段。这说明两者的频段不同,可能带来不同的传播特性和干扰情况。 —调制方式,蜂窝…...

今日行情明日机会——20250515

上证指数缩量收阴线&#xff0c;个股跌多涨少&#xff0c;上涨波段4月9日以来已有24个交易日&#xff0c;时间周期上处于上涨末端&#xff0c;注意风险。 深证指数缩量收阴线&#xff0c;日线上涨结束的概率在增大&#xff0c;注意风险。 2025年5月15日涨停股主要行业方向分…...

康复训练:VR 老年虚拟仿真,趣味助力恢复​

对于那些因身体机能衰退、疾病或者意外而急需康复训练的老人而言&#xff0c;传统的康复方式通常显得极为枯燥乏味。例如&#xff0c;只是在康复师的指导下机械地重复抬腿、伸手等简单动作&#xff0c;日复一日&#xff0c;毫无新意&#xff0c;这样的模式使得老人很难长期坚持…...

【美团】后端一面复盘|项目驱动 + 手撕 + JVM + 数据库全面覆盖

【美团】后端一面复盘&#xff5c;项目驱动 手撕 JVM 数据库全面覆盖 &#x1f4cd; 面试公司&#xff1a;美团 &#x1f3af; 面试岗位&#xff1a;后端开发工程师 &#x1f4de; 面试形式&#xff1a;电话面&#xff08;OC&#xff09; &#x1f552; 面试时长&#xff1…...

3DVR制作的工具或平台

3DVR&#xff08;三维虚拟现实&#xff09;是利用三维图像技术和虚拟现实技术&#xff0c;将真实场景进行三维扫描并转换成计算机可识别的三维模型&#xff0c;使用户能够在虚拟空间中自由漫游&#xff0c;体验身临其境的感觉。3DVR技术结合了全景拍摄和虚拟现实&#xff0c;提…...

websocket入门详解

入门websocket的基础应该掌握一下问题&#xff1a; 1、什么是握手&#xff1f; 2、什么是websocket&#xff1f; 3、websocket和http的区别&#xff0c;应用场景 4、html前端简单代码演示 5、springboot整合websocket使用 6、使用vueelementui打造简单聊天室 7、使用web…...

go-zero(十八)结合Elasticsearch实现高效数据检索

go-zero结合Elasticsearch实现高效数据检索 1. Elasticsearch简单介绍 Elasticsearch&#xff08;简称 ES&#xff09; 是一个基于 Lucene 库 构建的 分布式、开源、实时搜索与分析引擎&#xff0c;采用 Apache 2.0 协议。它支持水平扩展&#xff0c;能高效处理大规模数据的存…...

window 显示驱动开发-报告图形内存(四)

检索图形内存数字 创建图形应用程序的软件开发人员可以使用从 Windows Vista 开始的 Microsoft DirectX 版本 10 API 在运行 Windows 显示驱动程序模型 (WDDM) 显示驱动程序的计算机上检索准确的图形内存数集。 以下步骤演示如何检索图形内存编号&#xff1a; 由于新的图形内…...

精益数据分析(60/126):移情阶段的终极追问——如何用结构化访谈挖掘真实需求

精益数据分析&#xff08;60/126&#xff09;&#xff1a;移情阶段的终极追问——如何用结构化访谈挖掘真实需求 在创业的移情阶段&#xff0c;客户访谈的深度决定了需求洞察的准确度。今天&#xff0c;我们结合《精益数据分析》的方法论&#xff0c;探讨如何通过“追问技巧”…...

主流快递查询API横向对比:快递100快递鸟菜鸟物流接口差异解析

主流快递查询API横向对比&#xff1a;快递100/快递鸟/菜鸟物流接口差异解析 一、核心功能与适用范围 菜鸟API 核心功能&#xff1a;物流信息查询、电子面单打印、智能仓储管理、跨境物流服务&#xff0c;整合阿里生态资源&#xff08;如淘宝、天猫订单直接对接&#xff09;。…...

c++从入门到精通(四)--动态内存,模板与泛型编程

文章目录 动态内存直接管理内存Shared_ptr类Unique_ptrWeak_ptr动态数组allocator类文本查询程序 模板与泛型编程定义模板函数模板类模板模板参数成员模板控制实例化 模板实参推断重载与模板可变参数模板模板特例化 动态内存 c中动态内存的管理是通过new和delete运算符来实现的…...

反病毒反垃圾U-Mail邮件系统从容应对

在数字化时代&#xff0c;电子邮件依然是企业沟通的核心工具。然而&#xff0c;垃圾邮件、病毒邮件和钓鱼邮件等安全威胁&#xff0c;如同潜伏在暗处的幽灵&#xff0c;随时可能侵蚀企业的信息安全。因此&#xff0c;企业需要构建一套严密的邮件安全防御体系&#xff0c;才能有…...

第一天的尝试

目录 一、每日一言 二、练习题 三、效果展示 四、下次题目 五、总结 一、每日一言 可能我们会失败&#xff0c;但是人生容错率挺高的&#xff0c;你没必要活成万众瞩目的样子&#xff0c;我们也想要这样的生活&#xff0c;但是我们要付出努力和时间&#xff0c;所以当情绪来…...

GUI图形化演示

概述 Swing组件通常被称为“轻量级组件”,他完全由Java编写&#xff0c;不依赖操作系统语言&#xff0c;他的类继承关系如下&#xff1a; Java.lang.Object->Java.awt.Component->Java.awt.Container->Javax.swing.JCompoment JCompoent是swing组件存放的位置&…...

Day118 | 灵神 | 二叉树 | 删点成林

Day118 | 灵神 | 二叉树 | 删点成林 1110.删点成林 1110. 删点成林 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 最直接的思路就是看当前结点的值是不是在要删除的列表中&#xff0c;在的话删除当前结点并把左右孩子加入res中 很可惜这样是错的&#xff0c;…...

每周靶点:IL31、B7H3及文献分享

本期精选了《炎症中的“瘙痒”细胞因子IL31》《免疫检查点分子B7H3》《重组抗体&#xff1a;抗体测序和人工智能助力抗体设计》《文献分享&#xff1a;用于HER2特异性递送的单链Fab衍生药物偶联物》《文献分享&#xff1a;全长抗体、片段和双特异性格式的可开发性的比较研究》五…...

机器学习笔记——特征工程

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本笔记介绍机器学习中常见的特征工程方法、正则化方法和简要介绍强化学习。 文章目录 特征工程&#xff08;Fzeature Engineering&#xff09;1. 特征提取&#xff…...

麒麟v10 部署 MySQL 5.6.10 完整步骤

需要包的私信我 一、安装依赖&#xff08;Perl环境&#xff09; # 在线安装依赖 yum -y install perl perl-devel# 离线安装&#xff08;需提前下载好rpm包&#xff09; mkdir /data/ybn/soft/pre yum install --downloadonly --downloaddir/data/ybn/soft/pre perl perl-dev…...

digitalworld.local: DEVELOPMENT靶场

digitalworld.local: DEVELOPMENT 来自 <https://www.vulnhub.com/entry/digitalworldlocal-development,280/> 1&#xff0c;将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.18…...