自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(322)
  • 资源 (1)
  • 收藏
  • 关注

原创 一文掌握计算机网络重点之TCP, UDP和HTTP(一)

在我们构建的每一个现代数字应用背后,都有一系列看不见的、可靠而高效的“对话”在持续进行。当你刷新的社交媒体、观看的流媒体视频,或完成的每一次在线支付,其流畅体验的根基,都依赖于网络世界中三项至关重要的通信协议:TCP、UDP 和 HTTP。你是否曾好奇:为何文件下载能精准无误,而视频通话却允许偶尔的卡顿?浏览器在输入网址后,是如何为你呈现绚丽网页的?在这些日常网络行为的背后,究竟是何等精妙的设计在默默支撑?本文将为你层层拨开迷雾,将网络通信的复杂机制,转化为清晰易懂的核心图谱。

2026-02-12 15:53:42 547

原创 一文了解异步通信基础消息队列之RabbitMQ(一)

在分布式系统中,我们常面临这样的挑战:服务间紧耦合与同步调用阻塞。例如,订单服务在完成交易后,若需同步调用库存、物流、积分等多个下游服务,任何一环的延迟或失败都将阻塞整个链路,损害用户体验,且服务间升级迭代相互掣肘,系统僵化。RabbitMQ 正是为破解此难题而生的“消息代理”。它如同一个智能、可靠的邮局,在服务间构筑了一个异步通信层,让服务只需专注于“投递”与“收取”消息,彼此独立演进,从而实现了系统的解耦、弹性与可扩展性。

2026-02-11 16:30:52 1001

原创 一文了解MySQL实现本地事务ACID原理

在数据库领域,事务(Transaction)是一个不可分割的工作逻辑单元,它包含了一组对数据库的读写操作。事务的核心特性是“要么全做,要么全不做”。它必须作为一个单一的、不可分割的原子单位来执行,要么全部成功,要么全部失败回滚,不存在中间状态。定义:事务执行前后,数据库必须从一个有效状态转换到另一个有效状态。两层含义:内部一致性:数据库自身的数据结构和约束不被破坏。外部一致性:数据状态符合所有预定义的业务规则。MySQL事务的一致性,并非由单一组件实现,而是多层级防御体系共同作用的结果。

2026-02-10 16:46:48 482

原创 redis主从复制,哨兵模式,集群模式及redis实现分布式锁

优点:自动化高可用:实现了主从架构的自动故障转移,大幅减少系统停机时间。配置中心:作为客户端服务发现的权威来源。局限性:写操作无法扩展:故障转移后只是更换了主节点,写压力仍然集中在一个节点上。异步复制数据丢失:和主从复制一样,切换期间可能因异步复制丢失少量数据。容量瓶颈:所有节点存储全量数据,受单机内存容量限制。总结:哨兵模式是解决Redis主从架构高可用问题的标准方案。当您的业务需要读写分离,且对自动故障恢复有要求,但数据量尚未达到单机内存极限时,哨兵模式是理想选择。

2026-02-09 22:54:12 623

原创 数据库高可用之分库分表

随着互联网应用规模不断扩大,传统的单体数据库架构逐渐暴露出性能瓶颈和可用性隐患。当数据量达到千万乃至亿级,或并发请求飙升至每秒数万时,单库单表往往难以支撑业务需求,出现查询缓慢、写入阻塞甚至服务宕机等问题。数据库高可用​ 正是为了确保数据库服务在面对硬件故障、网络异常、负载激增等场景时,仍能持续稳定提供服务。其中,分库分表​ 与 故障转移​ 是构建高可用数据库体系的核心技术。本文将系统解析分库、分表及故障转移的原理、适用场景与实践示例,帮助你构建既具备弹性扩展能力,又能保障业务连续性的数据库架构。

2026-02-09 22:12:19 581 1

原创 一文漫谈数据库存储之索引(B+, B-link, LSM tree等)

B+树是现代数据库与文件系统的“索引基石”。B+树(B+ Tree)是一种多路平衡查找树,是数据库(如MySQL InnoDB)、文件系统(如NTFS、EXT4)中最常用的索引结构。它通过“索引与数据分离”的设计,完美解决了磁盘存储的随机I/O瓶颈,同时支持高效的等值查询、范围查询和顺序访问,是现代数据存储的“隐形骨架”。B+树是B树(B-Tree)的变种,其核心特征是“数据仅存储在叶子节点,内部节点仅作索引”。根节点(Root Node)​树的顶端节点,是索引的“入口”。

2026-02-09 15:42:24 595 1

原创 一文学习现代数据库常用的数据引擎

本文深入解析了MySQL数据库引擎的核心原理与特性,重点对比了InnoDB、MyISAM和MyRocks三种主流引擎。InnoDB作为默认引擎,支持事务、行级锁和崩溃恢复,采用B+Tree聚簇索引,适合高并发OLTP场景;MyISAM采用表级锁和非聚簇索引,读写性能突出但不支持事务,适用于读多写少的数据仓库;MyRocks基于LSM-Tree结构,通过顺序写入和压缩优化,特别适合写入密集型场景。文章通过架构分析和特性对比,揭示了不同引擎的设计哲学与适用边界,为数据库选型提供了底层技术依据。

2026-02-08 13:03:34 657

原创 一文了解分布式缓存(一)——从Redis应用到底层逻辑

在当今高并发系统中,缓存已成为不可或缺的架构基石。本文从最熟悉的Redis切入,详解其作为MySQL缓存的实践流程,并深入剖析三大经典问题(穿透、击穿、雪崩)的本质与解决方案。重温经典 —— 为什么是Redis?为什么做缓存?核心价值:缓解数据库压力,提升系统性能与吞吐量。Redis的优势:基于内存的极速读写、丰富的数据结构、单线程无锁带来的原子性、持久化与高可用方案成熟。一句话定位:Redis在此架构中扮演高性能的分布式读缓存角色。

2026-02-07 22:38:26 783

原创 一文了解分布式事务、两阶段提交、悬挂事务及解决方案

本文系统阐述了分布式事务的核心问题与解决方案。首先回顾了本地事务的ACID特性及其局限性,指出跨数据库操作需要分布式事务支持。接着介绍了CAP理论,说明分布式系统在一致性、可用性和分区容错性之间的权衡。重点解析了两阶段提交(2PC)协议的工作原理,并深入探讨了其典型问题——悬挂事务的产生机制。最后提出了基于防悬挂表的TCC解决方案,通过事务控制表记录执行状态,利用数据库约束防止资源悬挂。该方案在Seata等开源框架中已有成熟实现,能有效保障分布式事务的数据一致性。

2026-02-06 22:53:47 927

原创 一文漫谈设计模式之行为型模式(四)

本文探讨了三种行为型设计模式:模板方法模式定义算法骨架并允许子类重写特定步骤,适用于流程固定但细节可变场景;迭代器模式分离集合遍历与存储职责,提供统一访问接口;备忘录模式在不破坏封装前提下保存对象状态,支持撤销/恢复功能。每种模式通过角色定义、代码示例和适用场景分析,展示了其在软件设计中的实际应用价值,帮助开发者构建更灵活、可维护的系统架构。

2026-02-05 18:10:21 570

原创 一文漫谈设计模式之行为型模式(三)

责任链模式通过将多个处理对象连接成链,实现了请求发送者与处理者的解耦。它让多个处理者都有机会处理请求,增加了系统的灵活性。在实际应用中,责任链模式常用于工作流审批、日志级别处理、过滤器链、异常处理等场景。Java中的Servlet Filter、Spring Security过滤器链都是责任链模式的典型应用。需要注意的是,要避免处理链过长导致的性能问题,并确保请求最终能被处理。命令模式通过将请求封装为对象,实现了请求发送者与接收者的解耦,支持请求的排队、记录、撤销/重做等高级功能。

2026-02-05 16:40:44 980

原创 结构型模式易混淆点区分

本文对比分析了6种结构型设计模式的核心区别。适配器模式用于接口转换(如转接头),装饰器模式动态添加功能(如咖啡加料),代理模式控制对象访问(如明星经纪人)。桥接模式分离抽象与实现(如遥控器控制设备),组合模式统一处理整体与部分(如文件系统)。外观模式则提供简化接口(如酒店前台)。文章通过具体代码案例展示了适配器、装饰器和代理模式的实际应用,帮助开发者根据需求选择合适模式。

2026-02-05 13:24:14 724

原创 一文漫谈设计模式之结构型模式(二)

适配器模式是一种结构型设计模式,它充当两个不兼容接口之间的桥梁,使得原本由于接口不匹配而无法协同工作的类能够一起工作。其核心思想是定义一个包装类(即适配器),用于包装不兼容接口的对象。方面描述核心目标解决接口不兼容问题,使原本无法一起工作的类可以协同工作角色目标接口(Target):客户端期望的接口适配者类(Adaptee):需要被适配的现有类适配器(Adapter):实现目标接口,并包装适配者对象,负责接口转换主要优点复用性:复用现有的类,无需修改其源码灵活性:将目标类与适配者类解耦。

2026-02-04 23:35:45 973

原创 一文漫谈设计模式之创建型模式(一)

单例模式通过控制实例数量,有效地节约了系统资源,并提供了对唯一实例的受控访问。在选择具体实现方式时,如果追求简单且不介意启动时就加载,可以选择饿汉式或枚举;如果希望延迟加载并且保证线程安全,静态内部类和双重校验锁都是不错的选择。原型模式通过克隆的方式创建新对象,是new关键字的一种替代方案。它的主要优点是可以隐藏对象创建的细节,提高性能,并动态配置对象。

2026-02-04 18:05:56 716

原创 StreamFlow Player——局域网视频浏览中心

摘要:打造个人流媒体平台StreamFlow Player 作者为了解决大疆Pocket3拍摄视频的浏览不便问题,开发了StreamFlow Player网页应用。该平台支持: 本地视频列表展示,显示文件大小和创建日期 实时视频参数监测 跨设备访问(通过局域网IP) 无需上传,直接读取本地存储 解决方案基于Flask框架,实现了视频目录扫描、数据库管理和流媒体播放功能。目前支持.mp4等常见格式,未来计划优化流式传输功能。该平台让作者能随时在手机、平板等设备上流畅浏览拍摄素材,既保护隐私又免除了云服务费用。

2026-02-04 16:10:58 939

原创 FTP局域网小网站V2.3——安全、批量、有序,体验全新进化

还记得那个在局域网内即开即用、为你省去文件传输烦恼的FTP小工具吗?在收获了许多朋友的积极反馈后,我们迎来了又一次重要更新!V2.3版本聚焦于大家最关注的三个核心诉求:安全、效率和条理,致力于让你的文件共享体验既强大又省心。本次升级主要包含三大核心功能:🔐 密钥验证,为隐私加把锁:彻底告别“网络邻居皆可访问”的裸奔时代!我们为网站增加了简单的API密钥验证机制。现在,只有持有密钥的设备才能接入,有效防止在公共网络环境下的未授权访问,让你的私人文件更加安全。🚀 批量上传,效率飞跃:一次选中上百张照片或大量

2026-02-01 14:59:50 558 1

原创 FTP局域网功能小网站V2_2

为FTP局域网小网站增加密钥验证:从裸奔到安全可控在之前的版本中,我们的FTP局域网小网站存在一个明显的安全隐患:任何连接到同一路由器的设备都可以直接访问所有文件。虽然这带来了极致的便利性(无需登录、无需配置),但也意味着:公共WiFi环境下,陌生人可能访问你的私人文件缺乏访问审计,无法追溯谁访问了哪些文件为了解决这些问题,我决定为工具增加API密钥验证机制,在保持便捷性的同时提升安全性。具体大版本和这个保持一致: FTP局域网功能小网站V2本文相当于2.1版本增加一个鉴权功能。电脑端:手机端:

2026-01-31 18:38:08 988 1

原创 dell g3电脑出现no bootable device的处理方式

这是我从18年就买的电脑,dell g3 3579游戏本,当时有1060ti的显卡,算是我玩过一些游戏的老家伙了。最近没咋用,突然发现打不开了, 和这位博主一样。本文主要记录一下我定位和解决问题的过程。(另外,由于在修电脑的时候我有些东西忘记记录了,所以有些类似的情景我会从。

2026-01-31 11:48:04 851

原创 一文漫谈面向对象编程中的SOLID设计原则

单一职责原则(Single Responsibility Principle, SRP)是最基础、最核心的原则之一。单一职责原则(SRP)要求一个类只承担单一职责,即只有一个引起它变化的原因。例如:• ❌ 错误示范:UserService同时处理用户数据、数据库操作和邮件通知• ✅ 正确做法:拆分为User(数据)、UserRepository(数据库)、EmailService(通知)开闭原则是构建抗脆弱系统的核心准则,通过:抽象隔离变化点多态实现动态扩展依赖倒置降低耦合。

2026-01-30 17:13:55 763

原创 ios开发 xcode配置

iOS开发探索笔记 本文记录了作者在iOS开发学习过程中的经验总结,包含Xcode证书配置和ipa打包的实用教程链接。文章将持续更新iOS开发相关的内容,适合正在学习iOS开发的新手参考。文中特别推荐了一个详细的图文教程,介绍了iOS Xcode证书配置和ipa打包的具体操作步骤,为开发者提供了实用的技术指导。

2026-01-30 11:01:30 256

原创 FTP局域网功能小网站V2_1

本文介绍了一个基于Flask实现的FTP小网站优化版本,主要解决了传统通讯工具文件传输的痛点。该工具具有两大优势:1) 无需登录,局域网内多设备可直接访问;2) 文件在局域网内直传,速度远超第三方软件中转。项目采用Flask框架开发,包含文件上传、下载等核心功能,支持拖拽上传和可视化界面。作者使用Tailwind CSS和Font Awesome对前端进行了现代化改造,提升了用户体验。项目通过app.py作为主控文件,实现了文件目录管理、上传下载等功能。特别提醒:该工具仅限合法网络环境使用,禁止在公司公网搭

2025-08-10 16:31:26 823

原创 java 线程池 demo

水灵灵地记录一下线程池的使用demo。与多线程技术比, 线程池可以降低资源消耗,提高响应速度,以及提高线程的可管理性。

2024-08-29 13:08:20 887 2

原创 Java多线程打印ABC

之前写过, 但有时候用需要用java写,所以就准备下java的版本。

2024-08-29 12:45:59 535

原创 校招 - 行业测评题、图形推理题、逻辑思维面试题,解题技巧汇总

慢慢整理一些有用测评练习的小程序,博客等。虽然本人暂时还没专门练习这个。

2024-08-27 17:34:31 1411

原创 rabbitMQ安装与简单demo

mac安装有了brew很方便,这里记录一下安装过程和写一个简单的demo。

2024-08-22 21:44:44 1007

原创 golang实现一个简单的rpc框架

RPC在分布式系统中经常使用,这里写一个简单的demo实践一下。

2024-08-22 21:24:44 623

原创 something wrong with go and install mockery

go install的时候若没有写文件权限,则需要开下权限。上面命令安装有问题的话,可以尝试使用brew 安装。Go 1.22以后会有这个问题。mockery是一个写go单测的好工具。

2024-08-10 12:45:34 376

原创 Mac安装nvm以及配置环境变量

nvm -- node多版本管理工具

2024-08-03 12:13:16 2376

原创 go协程奇偶打印和交替打印ABC

这个题目算是面试常问了,go协程并发常见题目奇偶交替打印和打印ABC。

2024-08-03 11:40:18 628

原创 docker安装与container基本使用

Homebrew 的 Cask 已经支持 Docker for Mac, mac用户狂喜其他入门用法可参考或网上自行搜索博客学习。本文主要记录我运行go-zero-mall用到的一些注意点。当然,gonivinck项目书写的dockerfile格式也可以为我们平时日常开发做参考。

2024-07-29 12:35:55 852

原创 goenv丝滑控制多版本go

先装下goenv去 ~/.bash_profile 添加一下$(执行一下让配置生效插一嘴,如果之前是在官网安装的,可以先把go卸载了which go命令看下go的安装路径在哪, 比如我的在 /usr/local/go, 卸载然后把之前 ~/.bash_profile 的相关环境变量注释掉, 即在前面加多一个 # 号。

2024-07-21 11:43:30 1349

原创 质因数分解(cpp实现)--一种快速求得一个数有多少个因子的黑魔法

最近机试没少吃不会质因数分解的亏,用传统的求得因子个数只能过一点点…(ex, 20%)质因数分解后,可以将因子问题转化为 集合的组合问题,因此会很快,目测是logn(n是该整数的值)。

2024-05-01 22:17:53 2990 1

原创 KMP刷leetcode速通

KMP真厉害,刷题刷到和next 数组用来匹配不上时,前缀j可以快速回退到nextj−1的位置。

2024-04-08 17:19:04 713 1

原创 mysql 中文编码问题

最近在学springboot整合mybatisplus技术,用到mysql数据库,然后发现在windows下插入数据表会出现中文乱码现象 (例如 “我是谁” 在数据库中就成了 “???”)

2024-02-08 18:45:39 528

原创 Mac利用brew安装mysql并设置初始密码

之前一直是在windows上开发后段程序,所以只在windows上装mysql。(我记得linux只需要适应yum之类的命令即可)现在就记录一下在mac上安装配置mysql的教程

2024-02-05 12:05:40 2583

原创 给mysql设置时区

每次重启MySQL服务器后,使用IDEA的database navigator连接都会出现这种情况。嘿嘿把之前自家简书文章。搬运过来了,方便查阅。

2024-02-03 22:39:56 450

原创 torch一些常见的环境问题

我们在使用torch的时候经常会遇到一些常见的错误。这里单独开一篇博客记录一下,以便日后翻阅。本文会不断更新…

2023-07-25 09:14:50 525 2

原创 ddp 多卡训练torch 记录

之前一直拿别人的开源代码改,最近需要自己从头写,实验需要多卡训练,于是就记录一下。

2023-07-13 16:55:55 1713

原创 上采样和下采样层 nn.pixelshuffle and nn.pixelunshuffle

理论部分后面有空的时候补一下,这里先放代码和简要说明。

2023-07-04 11:36:44 2888 4

原创 torch tensor保存jpg/png图片

就是有时候需要保存一些feature map或者训练过程中验证的图像输出结果。待会儿出去玩,先不写前言。

2023-05-26 15:26:22 3019

mingw64.zip的压缩包

当我们mingw因为网络或等关系,我们可以将这个压缩包下载下来,直接使用,大大方便了我们的环境配置。比如我们使用clion的时候就需要用到mingw。

2020-07-31

空空如也

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

TA关注的人

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