- 博客(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
原创 something wrong with go and install mockery
go install的时候若没有写文件权限,则需要开下权限。上面命令安装有问题的话,可以尝试使用brew 安装。Go 1.22以后会有这个问题。mockery是一个写go单测的好工具。
2024-08-10 12:45:34
376
原创 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
原创 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
原创 上采样和下采样层 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的压缩包
2020-07-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅