Ajax Zhan's Blog
Welcome!This is Ajaxzhan.
坚信:品味优先于执行,价值驱动下创造、系统工程保安全
持续跟进AI前沿研究,持续思考技术、产品与思维。
坚信:品味优先于执行,价值驱动下创造、系统工程保安全
持续跟进AI前沿研究,持续思考技术、产品与思维。
8255A是可编程并行接口芯片,具有3个8位I/O口(A、B、C口),通过地址线A1A0选择端口(A口、B口、C口、控制口)。支持两种控制字:方式控制字(配置端口工作方式及输入/输出方向)和C口置位/复位控制字。工作方式包括方式0(基本I/O,用于无条件传送或查询)、方式1(选通I/O,支持查询和中断)及方式2(双向选通,仅A口适用)。常用于键盘、数码管、打印机等接口电路,通过初始化配置实现数据输入/输出、状态监测及联络控制,是微机系统中连接外设的关键接口芯片。
本文分享了作者从Hexo迁移至Halo博客时的自动化解决方案。Hexo因繁琐配置导致维护困难,而跨平台迁移面临多源数据(Obsidian、Hexo、掘金、CSDN)的格式兼容问题。作者通过Python脚本实现自动化处理:支持将Obsidian的`![[]]`格式转为标准markdown并上传图片至OSS,同时可下载掘金/CSDN的图片并替换为CDN链接。该方案通过正则匹配、七牛云SDK和HTTP请求,解决了图片迁移的核心痛点,体现了自动化工具对重复性劳动的解放价值。
本文系统阐述了文件系统的核心概念与机制。文件是以磁盘为载体的信息集合,由文件名、数据、类型等组成,通过create、read等系统调用操作。文件目录通过FCB实现“以名存取”,结构包括单级、两级、树形及无环图,后者支持文件共享但需计数器防误删。索引节点(inode)分离文件名与描述信息,提升目录检索效率。文件逻辑结构分无结构(流式)和有结构(顺序、索引等),物理结构则采用连续分配(高效但碎片多)、链式分配(支持扩展但随机访问差)及索引分配(灵活需多级管理)。存储空间管理通过空闲表、链表或位视图法实现。文件共享分硬链接(基于inode)与软链接(符号链),保护机制包括口令、加密及访问控制列表(ACL)。最后,文件系统层次结构从用户接口到设备管理,虚拟文件系统(VFS)统一不同文件系统接口,挂载机制实现跨系统兼容。
本文系统概述了计算机I/O管理核心内容。I/O设备按使用特性(人机交互、存储、网络)、传输速率(低速、中速、高速)及交换单位(块设备支持随机读写,字节设备用中断驱动)分类;控制器通过寄存器实现命令识别、状态报告及数据交换。I/O控制方式从程序直接控制(CPU轮询)到中断驱动(并行工作)、DMA(直接内存访问,块传输)及通道控制(硬件执行通道程序),逐步降低CPU干预,提升效率。I/O软件分用户层(系统调用接口)、设备独立性软件(实现调度、保护、分配、缓冲)、驱动程序及中断处理。磁盘管理涵盖结构(柱面/盘面/扇区)、调度算法(如SCAN、C-SCAN优化寻道)及SSD特性(基于闪存,支持随机访问,需磨损均衡)。
本文聚焦ShardingSphere全家桶,重点介绍其核心组件ShardingJDBC——一款轻量级Java框架,通过JDBC层提供数据分片、分布式事务及数据库治理功能,兼容各类ORM框架。文章详解其分片算法(标准、复合等)、路由策略(直接、标准、笛卡尔积等)及结果归并策略(遍历、排序、聚合等),并结合SpringCloud实战,演示如何通过ShardingJDBC实现MySQL读写分离与分库分表配置,验证读写请求正确路由至主从库,为微服务架构下的数据库分片实践提供技术参考。
本文围绕用户中台的高并发需求,深入探讨MySQL读写分离与分库分表架构。首先分析读写分离的必要性,通过主从复制缓解读压力,并介绍代理层与中间件实现方案;随后阐述分库分表的类型(垂直/水平)及分片算法,同时指出分布式事务等挑战。实践部分演示冷热分离表设计、存储过程创建分表及Docker搭建MySQL主从架构,为后续ShardingJDBC应用及主从延迟解决方案奠定基础,助力高并发场景下的数据库性能优化。
8253是可编程定时/计数器,通过软硬结合实现定时计数,不占用CPU且可程控调节精度高。其内部含3个独立16位通道,每个通道可设6种工作方式。编程需先写控制字(选择通道、工作方式、计数方式及读写方式),再写计数初值(>255分两次)。6种工作方式中:方式0(计数结束中断,初始OUT低)、方式1(硬件触发单稳,负脉冲宽度可调)、方式2/3(连续负脉冲/方波,自动重装,分频应用)、方式4(软件触发选通单脉冲)、方式5(硬件触发选通单脉冲,自动重装)。例题涵盖控制字配置、定时波形生成及长延时设计,突出其在定时、分频、中断等场景的应用。
本文记录了作者在微服务项目中使用Dubbo与Nacos时,通过Docker部署Nacos 2.3.1版本遇到的鉴权配置问题。部署时采用官方Docker方式,并选用MySQL存储数据。开启鉴权时,发现直接配置环境变量(如NACOS_AUTH_USERNAME/PASSWORD)无效,经排查原因为新版本未预置默认用户数据。正确做法需在MySQL的users和roles表中手动插入用户信息(密码需BCrypt加密),并配置对应角色。最终成功实现鉴权,Dubbo服务可正常向Nacos注册。
Spring AI是受Python项目启发的AI应用开发框架,核心在于提供抽象能力、简化开发,支持多模型(如OpenAI、通义)及向量数据库,屏蔽底层交互细节。Spring Cloud Alibaba AI基于其适配国内通义大模型,支持对话、文生图、文生语音等功能,提供便捷的Spring Boot集成。动手体验显示,通过简单配置依赖与API-Key,即可快速实现文本问答、图像生成、语音合成等模型对接,代码简洁(如ChatClient一行调用)。使用小结指出其简化复杂AI应用开发的优势,但也存在响应时间优化空间及模型选择灵活性待提升问题,未来将持续适配VectorStore、RAG等场景,助力国内Java开发者高效构建AI应用。
本文针对物联网项目中华为云IoT平台数据需转发至本地Web服务的需求,探讨了内网穿透解决方案。作者排除了直接部署云服务器和转发脚本方案后,重点实践了内网穿透技术。过程中先后尝试了ngrok、CloudFlare tunnel等工具,遭遇了访问限制、带宽不足、URL格式错误等问题。最终采用frp(高性能反向代理工具)实现成功穿透,通过在云服务器和本地分别部署frps和frpc服务,配置HTTP代理使公网可通过自定义域名访问本地服务。文章详细分享了frp的配置要点、systemd管理最佳实践,为类似场景提供了可复用的解决方案。