加载中

Java

文章分类

浏览该分类下的所有文章

237 篇文章 20

消息队列 & 搜索引擎

MQ主要用于解耦、异步和削峰,通过生产者‑消费者模型实现。保证顺序消费需让同一业务键落在同一队列/分区;防止消息丢失则采用持久化、事务/confirm(RabbitMQ)或多副本、acks=all(Kafka)并在消费端手动 ack。避免重复消费靠业务幂等性、唯一 ID 或 offset 控制。失败消息可转入死信队列重试。推模式适合实时广播,拉模式适合按需获取。RabbitMQ侧重可靠性和实时性,Kafka侧重高吞吐和流式处理,两者在架构、确认机制、负载均衡等方面各有区别。

分布式(一)

本文系统阐述了分布式系统的核心概念。首先介绍CAP原理,说明一致性、可用性、分区容错只能两两兼得;随后分析高并发的含义及其设计目标——高性能、高可用、高扩展,并给出从纵向/横向扩展、分层架构、缓存、分片、异步、限流等具体实现方案及相应的性能、可用性、扩展性指标。接着比较了三种分布式存储架构:HDFS的主从元数据、Ceph的无中心计算定位以及Swift的一致性哈希。最后概述分布式事务的实现方式,重点比较2PC(XA)与TCC的优缺点。

分布式(二)

文章介绍分布式事务的实现方式,包括 Open Group DTS 模型及 JEE 中的 TX、XA 协议,详细阐述两阶段、三阶段提交和 TCC 协议的流程、优缺点,并指出在高并发场景下它们的成本与局限。随后提出实现最终一致性的轻量模式——查询、补偿、异步确保、定期校对、可靠消息、缓存一致性等,并说明适用场景。最后讨论分布式系统的单点故障(无状态/有状态)解决思路以及 HTTP 与 RPC 的区别。

计算机网络(一)

本文系统阐述了计算机网络的分层模型:OSI七层(物理、链路、网络、传输、会话、表示、应用)及其功能;TCP/IP四层(应用、传输、网络、链路)对应的五层模型;说明客户端通过URL确定使用的协议,列举TCP、HTTP、FTP分别属传输层或应用层;简要介绍TCP的可靠传输、流量与拥塞控制,HTTP的请求方法与状态码,FTP的控制/数据通道;概述传输层的复用、端口及服务类型;最后解释ARP如何将IP映射为MAC并维护缓存。

计算机网络(二)

本文系统阐述了TCP连接的四次挥手过程、为何需四次及最后一次ACK的必要性,解释了TCP的粘包/拆包产生原因及常用的长度字段或结束标识解决方案;比较了TCP与UDP在连接方式、可靠性、拥塞控制、首部开销等方面的差异,并指出TCP对网络稳定性要求高、UDP则适用于实时性强但容错的场景;给出通过超时重传和确认序号等机制在应用层提升UDP可靠性的思路;说明了TCP报文头中序号占4字节以及发送/接收缓冲区在流控和数据重传中的作用。

计算机网络(三)

本文阐述了TCP异常终止的RST报文及其常见触发场景,介绍了在应用层实现可靠UDP的机制及RUDP、RTP、UDT等方案,分析了TCP报文乱序的处理方式。随后说明了IP地址的A、B、C、D、E五类划分及其分类意义,并比较了IPv4与IPv6在地址长度、报文结构、功能等方面的差异。最后对HTTP与HTTPS的区别、HTTPS的混合加密原理以及支持的对称、非对称和散列算法进行概述。

计算机网络(四)

本文介绍HTTPS握手过程,阐述HTTP 4xx、5xx错误码及常见状态码分类;比较301与302、302与304的区别;描述完整的HTTP请求与DNS解析流程;解释重定向概念、类型及其与服务器端请求转发的区别;概述DNS寻址原理。

操作系统(一)

本文汇总了Linux常用运维命令的使用方法,包括查看进程(ps、top)、日志搜索(grep及其常用参数)、修改主机名(hostname、hostnamectl)、开机自启(cron @reboot、rc.local)、内存查询(free、top及free选项)以及常见压缩/解压工具(tar、gzip、bzip2、compress、zip)的基本语法与常用参数,并提供示例帮助快速上手。

操作系统(二)

进程切换需保存完整上下文并刷新TLB,开销大于仅切换硬件上下文的线程切换。进程间通信方式包括匿名/有名管道、信号、消息队列、共享内存、信号量和socket,各有特点和使用场景。信号量通过P/V操作实现进程/线程对共享资源的同步与互斥。

操作系统(三)

文章介绍了并发控制的悲观锁和乐观锁概念及CAS实现原理,随后阐述了IO多路复用技术及select、poll、epoll的实现、性能差异和LT/ET模式;说明了epoll的工作流程及O(1)查询特性。随后详细描述了域名解析的缓存、递归查询过程以及Linux下IP配置、IP、子网掩码和网关的含义。

操作系统(四)

本文系统阐述了Linux内存管理的关键机制,包括硬件层次结构、虚拟内存与页表、多页(大页)与TLB优化、内存区域与NUMA节点划分、页面缓存、匿名内存、内存回收、碎片整理(compaction)及OOM Killer的工作原理。随后解释了内存映射文件(mmap)的实现过程及其相对于传统页缓存的优势,并概述了段页式地址转换的演进:从直接寻址、分段到分页,说明了物理内存与虚拟内存的区别及引入虚拟内存的必要性。整体展示了操作系统如何通过层次化、分页和映射技术实现高效、隔离且可扩展的内存管理。

操作系统(五)

本文概述了Linux的五种I/O模型——阻塞、同步非阻塞、I/O多路复用、信号驱动和异步I/O,阐明各自的工作机制与适用场景;随后比较了软链接与硬链接的实现方式、限制及使用场景;接着解释了缺页中断的触发条件、处理流程及与普通中断的区别;再区分了硬中断和软中断的产生、响应与可屏蔽性;最后介绍了写时拷贝(Copy‑On‑Write)技术在fork等场景中的实现原理、优势和局限。