自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(542)
  • 收藏
  • 关注

原创 实验- 分片上传 VS 直接上传

分片上传和直接上传是两种常见的文件上传方式。将文件分成多个小块,每次上传一个小块,可以并行处理多个分片,适用于大文件上传,减少了单个请求的大小,能有效避免因网络波动或上传中断导致的失败,并支持断点续传。相比之下,是将文件作为一个整体上传,通常适用于较小的文件,简单快捷,但对于大文件来说,容易受到网络环境的影响,上传中断时需要重新上传整个文件。因此,分片上传在大文件上传中具有更高的稳定性和可靠性。

2025-03-16 20:38:31 1047

原创 WebSocket在分布式环境中的局限性及解决方案

在 WebSocket 的传统实现中,每个服务器实例管理自己的WebSocket 连接,不能直接跨实例推送消息。通过Redis 或 Kafka等消息队列,服务器实例可以将消息发布到共享频道,其他实例可以订阅并接收到该消息。通过这种方式,即使用户 A在服务器实例 1,而用户 B在服务器实例 2,也能确保消息能够实时推送到用户 B。

2025-02-18 15:04:02 1140

原创 航空发动机- 马赫环

马赫环的形成主要依赖于超音速气流中的膨胀波和压缩波的交替作用,以及喷出气体与环境压力的不平衡。其亮度则源于在特定条件下(如加力燃烧)未燃烧燃油的再次点燃,产生的高温和发光现象。这使得马赫环在视觉上呈现出明亮的同心圆形态。

2024-12-16 00:18:28 1189

原创 简易的消息队列框架

消息回调接口 (MessageCallback):定义了 onMessageReceived 和 onError 方法,用于处理消息接收和错误处理。消息队列类 (MessageQueue):使用 LinkedList 作为消息队列,并提供方法来注册回调和将消息加入队列。消息处理时调用回调函数。异步消息处理:通过 executorService.submit() 将消息处理任务提交到线程池,使消息处理不会阻塞主线程。实现 MessageCallback 接口,定义如何处理接收到的消息和错误。

2024-11-16 14:14:52 246 1

原创 SpringBoot- 查看Maven依赖API文档

在 Maven 中查看某个依赖的所有 API 文档,最常见的方式是通过添加 Javadoc 并使用 IDE 自动集成查看,或者直接访问 Maven 仓库网站。

2024-10-29 23:23:32 881

原创 C语言中的野指针以及避免野指针的常用方式

在C语言中,(Dangling Pointer)是指一个指向无效或已释放内存区域的指针。使用野指针会导致不确定的行为,例如程序崩溃、数据损坏,甚至可能带来安全漏洞。freedelete。

2024-10-29 22:38:51 452

原创 Java基础- isAssignableFrom() 检查类型之间的兼容性

cls)参数Class cls,即要进行检查的类对象。返回值boolean,返回true表示当前类可以从指定类赋值,否则返回false。方法是Java中一个实用的工具,用于在类加载和类型兼容性判断时检查类间的赋值关系。它让开发者能够在运行时进行灵活的类型验证,从而安全地执行类型相关操作。

2024-10-26 18:56:29 556

原创 Java- HashMap之 putIfAbsent & computeIfAbsent

简单地检查键是否存在,插入固定的值,常用于静态的默认值场景。:可以基于键动态计算值,常用于动态初始化或者延迟计算的场景。

2024-10-24 12:14:48 763

原创 Spring注解-@Autowired注入时有多个同类型的Bean解决方案

不能仅通过类型区分,因为多个实现类都是类型。使用@Qualifier可以通过名称指定具体的 Bean。使用@Primary可以为某个 Bean 设置优先注入的首选项。

2024-10-14 23:07:40 625

原创 Spring注解之 @Autowired @Qualifier

Autowired用于自动注入符合类型的 Bean。@Qualifier用于解决多个符合条件的 Bean 时的冲突,指定注入哪个 Bean。两者结合使用可以在复杂的依赖注入场景下更精确地控制 Bean 的注入。

2024-10-14 22:58:27 929

原创 Java代理- CGLIB代理应用片段分析

该proxy()方法使用 CGLIB 生成一个代理对象,代理类是目标类的子类,并且代理类中的方法调用会通过接口的intercept方法进行拦截,以实现自定义的行为,比如日志记录、事务管理、或在该示例中可能是缓存操作。这个方法通过动态字节码生成,能够在不修改目标类的前提下,动态扩展目标类的功能。我们可以将这个方法用在其他场景中,比如在缓存系统中,当某些方法被调用时,使用intercept来实现缓存逻辑。这种方式可以使得代码具备良好的扩展性和维护性。

2024-10-14 19:01:06 365

原创 JIT- 栈上替换(On-Stack Replacement, OSR)

栈上替换(On-Stack Replacement, OSR)是 JIT 编译器用于提升热点代码执行性能的关键技术,尤其是在解释执行到 JIT 编译之间的动态切换上具有重要作用。它允许 JVM 在代码执行的中途进行优化,将正在运行的长时间执行代码片段替换为优化后的机器码,使得程序的性能提升而不会影响代码的正确性。这种动态、灵活的优化机制,极大地提高了现代虚拟机的运行效率。

2024-09-29 13:44:48 809

原创 再探mmap(Memory Mapped File)

mmap通过将文件内容映射到进程的虚拟内存空间,提供了一种高效、便捷的文件访问方式。它利用了虚拟内存管理的分页机制,使得文件访问像操作内存一样高效,特别适合处理大文件、进程间通信等场景。然而,由于它依赖操作系统的虚拟内存管理,因此也可能带来一些内存管理和同步问题。

2024-09-20 21:37:48 836

原创 DNS解析流程

浏览器DNS缓存 -> 本地系统DNS缓存 -> 本地hosts文件 -> ISP或配置的DNS服务器 -> 递归查询(根服务器 -> TLD服务器 -> 权威DNS服务器)是DNS解析的完整流程。其中涉及缓存的部分是为了加速解析速度,避免重复请求,提高效率。

2024-09-20 21:29:12 619

原创 在系统总线的数据线上,不可能传输的是()。

在系统总线的数据线上,不可能传输的是A.指令 B.操作数C.握手(应答)信号 D.中断类型号答案:在系统总线的数据线上,

2024-09-20 21:17:08 842

原创 内存分配- brk & mmap

malloc实现中的brk和mmapbrk适合小块内存分配,mmap适合大块内存分配。这种分配机制既能提高内存管理的效率,又能优化系统资源的使用。

2024-09-20 16:36:38 826

原创 CyclicBarrier & CountDownLatch

可重复使用:它的设计允许在多个循环或阶段中重复使用,当一组线程到达屏障后,屏障会自动重置,进入下一轮等待。是一次性的:它的计数器一旦到达 0,就无法再次使用,只能用于一次性任务协调。如果需要再次使用,必须创建新的实例。

2024-09-11 23:01:40 849

原创 MySQL 的 EXPLAIN 命令执行效率高

MySQL 的EXPLAIN命令用于分析查询语句的执行计划,展示 MySQL 在执行这条查询时的查询路径和步骤。然而,EXPLAIN命令的执行效率非常高,这是因为它并不会真正执行查询操作,而是通过解析查询语句和数据库结构,生成一个执行计划并将其展示出来。

2024-08-15 20:20:32 456 1

原创 MySQL- EXPLAIN命令的type列

ALL:全表扫描,最不推荐,因为它扫描了表中的所有行。index:全索引扫描,扫描了整个索引,效率比全表扫描稍高。range:索引范围扫描,扫描索引中的一个范围,性能较好。ref:非唯一索引扫描,使用非唯一索引来查找匹配的行。eq_ref:唯一索引扫描,使用唯一索引或主键查找匹配的行,效率非常高。const:查询结果是常量,表示最多有一条记录,效率最高。通过理解这些访问类型及其对应的查询场景,可以帮助我们优化 MySQL 查询,提高数据库性能。

2024-08-14 22:31:01 1378 1

原创 MySQL-MVCC举例说明

MVCC 是 MySQL InnoDB 存储引擎用来处理并发事务的一种重要机制。通过版本链和 Read View 的机制,MVCC 能够高效地处理多个事务的并发读写操作,确保数据的一致性和系统的高性能。了解 MVCC 的工作原理,对于优化 MySQL 性能和解决并发问题至关重要。

2024-08-14 17:24:21 1116

原创 Redis- INFO命令

INFO命令是 Redis 中一个非常重要的命令,用于获取 Redis 实例的详细状态信息。特别是在 Redis 哨兵模式下,命令被广泛用于监控主从复制的状态。在故障转移过程中,哨兵通过频繁发送命令,确认从节点成功升级为主节点,确保故障转移顺利完成。

2024-08-13 22:26:21 1308

原创 Redis 哨兵节点之间的相互发现

监控:持续监控主节点和从节点的运行状态。通知:当检测到节点故障时,通知其他哨兵节点。自动故障转移:在主节点故障时,选举新的主节点并完成故障转移。配置提供者:为客户端提供可用的 Redis 实例信息。为了实现这些功能,哨兵节点需要能够相互发现并通信,从而形成一个协作的集群。Redis 哨兵节点之间通过 Redis 的发布/订阅机制相互发现和通信。每个哨兵节点在主节点上订阅频道,并定期向该频道发布自己的信息,其他哨兵节点通过订阅这个频道来发现彼此并建立联系。

2024-08-13 22:23:50 993

原创 MySQL- 索引下推

索引下推(ICP)是 MySQL 5.6 引入的一个重要优化技术,它通过将部分查询条件“下推”到索引扫描阶段来减少回表操作,从而提高查询性能。索引下推特别适合使用复合索引的场景,通过有效地减少不必要的 I/O 操作,能够显著提升查询的执行效率。在实际应用中,可以通过EXPLAIN语句来查看索引下推是否生效,并结合查询模式和索引设计来充分利用这一优化技术。

2024-08-13 22:22:17 2800 1

原创 MySQL- 覆盖索引

覆盖索引是指一个索引包含了查询所需要的所有列的数据。换句话说,查询可以完全从索引中获取所需的数据,而不需要访问表中的实际行数据。这意味着查询只需要读取索引就可以返回结果,而不必进行额外的磁盘 I/O 来读取表数据。索引包含了 SELECT 子句中的所有列。索引包含了 WHERE 子句中的所有列。索引包含了 ORDER BY 子句中的所有列(如果有)。覆盖索引是一种强大的 MySQL 查询优化技术,可以显著减少查询的 I/O 操作并提高性能。

2024-08-13 22:20:15 1587

原创 Redis主从架构中的min-slaves-max-lag参数

参数在 Redis 主从复制架构中起着关键作用,确保在主从节点之间的复制延迟可控的前提下继续接受写请求。通过这个参数,Redis 可以避免因为从节点同步滞后导致的数据不一致问题,保障系统在高可用性和一致性之间的平衡。然而,使用这个参数时需要根据实际情况合理设置,以防止不必要的写入拒绝。

2024-08-13 17:55:06 1335 2

原创 Redis -LFU(Least Frequently Used,最少使用频率)缓存淘汰算法

在 Redis 中,LFU 算法通过lru字段的ldt和logc衰减阶段:Redis 在每次访问 key 时,根据当前时间与上次访问时间之间的差值,对logc进行衰减。时间差越大,衰减越多,表示该 key 的使用频率在降低。增加阶段:衰减后,Redis 再根据概率决定是否增加logc。logc值越高,增加的难度越大。这种机制确保频繁访问的 key 才能在长期内保持较高的logc值。淘汰策略:在需要淘汰缓存项时,Redis 会优先淘汰logc。

2024-08-11 22:05:28 835

原创 Java泛型中的PECS 原则

使用extends时,集合主要用作生产者,从中读取数据。由于集合的元素至少是指定类型的子类,可以保证类型安全。: 使用super时,集合主要用作消费者,向其中写入数据。由于集合的元素至少是指定类型的父类,可以安全地向集合中添加数据。通过理解和遵循 PECS 原则,可以编写出更加灵活和类型安全的泛型代码。这种设计能够更好地利用 Java 泛型的优势,确保代码在处理不同类型的集合时保持类型安全。

2024-08-06 20:53:08 1118

原创 Java泛型中的extend 和 super

extends:用于指定类型参数的上界,通常用于生产者(只读)的场景。super:用于指定类型参数的下界,通常用于消费者(只写)的场景。PECS 原则:Producer Extends, Consumer Super,指导何时使用extends和super。通过理解和正确使用extends和super,可以编写出类型安全且灵活的泛型代码,满足各种不同的需求。

2024-08-06 20:50:19 1049

原创 使用Selenium的Python脚本实现自动登录

在HTML中,标签用来嵌入另一个HTML文档。iframe可以用来嵌入广告、地图、视频等独立内容。为了操作iframe中的内容,我们需要先切换到该iframe的上下文。

2024-05-30 13:49:21 1537

原创 计算机网络- 特定服务类型(Type of Service, TOS)& 服务质量(Quality of Service, QoS)

QoS技术通过分类、标记、队列管理、流量整形和拥塞管理等机制,确保不同类型的数据流得到适当的优先级处理,满足其服务质量要求。有效的QoS实施能够显著改善网络性能和用户体验,尤其是在对实时性要求高的应用场景中。理解并应用这些技术,对于网络管理和优化至关重要。

2024-05-29 23:50:52 1311

原创 ICMP(Internet Control Message Protocol)目标不可达错误消息

ICMP不可达消息是网络诊断和故障排除的重要工具,它提供了关于网络、主机、协议和端口的各种不可达问题的详细信息。理解这些消息及其含义有助于网络管理员快速定位和解决网络问题。

2024-05-29 23:11:30 2799

原创 浅谈traceroute网络诊断工具

traceroute通过逐步增加探测包的TTL值来确定数据包从源主机到目标主机路径上的每个中间路由器。利用ICMP超时消息或ICMP端口不可达消息,它能够显示每一跳的IP地址和往返时间,帮助用户识别网络路径中的问题和瓶颈。

2024-05-29 22:55:16 1165

原创 浅谈路由器转发数据包

当路由器转发数据包时,它会经历一系列步骤,包括接收数据包、路由表查询、以及转发数据包。

2024-05-29 19:55:57 1955

原创 ICMP(Internet Control Message Protocol)概述

ICMP(Internet Control Message Protocol,互联网控制消息协议)是一种用于在网络设备之间传递控制消息和错误报告的协议。ICMP是IP协议套件的一部分,主要用于诊断网络问题和报告通信中的错误。

2024-05-21 13:14:28 1237

原创 DHCP 动态分配概述

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种网络协议,用于自动分配IP地址和其他网络配置参数(如子网掩码、默认网关、DNS服务器)给网络中的设备。这简化了网络管理,因为管理员不需要手动配置每个设备的网络设置。

2024-05-21 13:06:09 1534

原创 Ubuntu 22.04上重启网络

在Ubuntu 22.04中,默认的网络管理工具是 netplan。因此,我们可以使用 netplan 或 NetworkManager 来管理网络。ip a。

2024-05-21 12:58:16 10139

转载 Ubuntu 22.04 安装JDK17

转载自:https://www.jianshu.com/p/96b961e96640。

2024-05-20 12:53:54 527

原创 Redis- 如何防止攻击者利用未授权访问 Redis 服务的攻击获取目标机器的 root 权限

以下攻击步骤展示了如何利用未加防护的 Redis 服务器,通过配置 Redis 的持久化机制,将攻击者的 SSH 公钥写入目标机器的文件,从而获取目标机器的 root 权限。这是一种典型的利用未授权访问 Redis 服务的攻击方法。cd ~/.ssh/进入攻击者的~/.ssh目录。使用命令将 SSH 公钥文件id_rsa.pub的内容包裹在前后两个空行中,并重定向输出到key.txt文件。加入前后两个空行是关键,因为这样可以确保文件的格式正确,不会破坏已有的条目。

2024-05-15 13:07:53 498

原创 Linux- cron调度进程

cron是一个 Unix 类操作系统中的时间调度守护进程,用于在特定的时间或间隔运行指定的命令或脚本。它非常适合自动化系统管理和维护任务,如备份、日志轮转、系统监控等。以下是cron守护进程的详细介绍。cron。

2024-05-15 12:45:30 454

原创 云服务器上Redis数据库被攻击实录+总结

通过以上步骤,可以详细了解攻击过程,并采取有效的措施防止类似攻击的发生。增强 Redis 服务器和系统的安全性是关键,确保只有受信任的用户能够访问和管理服务器。计划任务格式:计划任务的格式是一个定时器表达式后跟执行命令。这条任务每 15 分钟执行一次curl命令下载并执行远程脚本。文件路径:攻击者将 Redis 配置为将数据持久化到cron计划任务目录,如。这导致持久化的内容成为cron守护进程的一部分计划任务。持久化机制的滥用:通过 Redis 的SAVE。

2024-05-15 11:40:15 1660 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除