后端开发

JAVA系列课程

Hollis,阿里巴巴技术专家《Java工程师成神之路》系列文章作者,热衷于分享计算机编程相关技术,博文全网阅读量上千万。

了解更多
高效解决分布式事务!两阶段提交(2PC)详解与优化策略
分布式事务是指在分布式系统中,由多个独立的服务或数据库参与的事务,确保这些分布式节点上的操作能够一致完成或回滚,从而保证数据的一致性。 一、两阶段提交(2PC) 将事务分为准备阶段和提交阶段。各节点在准备阶段确认操作无误后再提交,在遇到错误时会回滚。在2PC中,有两个核心角色,协调者、参与者。 优点:能保证各参与节点数据的一致性,适用于对数据一致性要求高的场景。 缺点:性能开销大(锁定资源时间较长)、可能会出现“协调者单点故障”问题,导致系统阻塞。 准备阶段: (1)协调者向所有参与者发送commit请求,询问是否可以提交事务,并等待答复。 (2)各参与者开始准备执行事务,将uodo...
阿里云对象存储OSS全揭秘:超大文件存储利器,省钱又高效的业务加速方案!
一、什么是对象存储? 对象存储(Object Storage...
超详细!Redis分布式锁最佳实践与高效优化策略
一、基于Redis实现分布式锁 (1)基于Lua脚本(包含SETNX...
分布式系统中的CAP理论及三要素优化策略
一、什么是CAP定理 CAP定理指出,在分布式系统中,无法同时满足一致性、可用性和分区容错性这三个特性。通常需要在一致性和可用性之间进行取舍,因为分区容错性对于分布式系统而言几乎是必不可少的。 CAP定理:C(数据一致性)、A(可用性)、P(分区容错性) (1)C全称Consistency(一致性)...
深入浅出 Zookeeper 分布式锁:轻松上手高效实现!
一、基于Zookeeper实现分布式锁 通过ZooKeeper的节点创建与删除来实现分布式锁,使用临时节点(防止死锁)和顺序节点(可以利用锁释放的事件监听机制,来实现阻塞监听式的分布式锁)来管理锁的获取与释放。 也可通过使用ZooKeeper的一个客户端Curator,Curator提供的InterProcessMutex是分布式锁的实现,acquire方法用于获取锁,release方法用于释放锁。 实现原理:Zookeeper是一个分布式协调服务,分布式协调主要是来解决分布式系统中多个应用之间的数据一致性,Zookeeper内部的数据存储方式类似于文件目录形式的存储结构。在Zookeeper中的指定路径下创建临时节点,然后客户端根据当前路径下的节点状态来判断是否加锁成功。 获取锁: 创建一个临时序列节点,代表当前请求的锁。 获取当前根节点下的所有子节点并进行排序。 检查当前节点是否是最小的节点,如果是,则获取锁成功。 如果不是,则设置一个观察者,等待前一个节点的删除。 释放锁:...
基于MyBatis和MySQL打造高效分布式锁,实现数据一致性
一、基于数据库实现分布式锁 (1)利用数据库行级锁定功能实现悲观锁 在操作数据期间,通过select...
Java异常处理全解析:提高代码健壮性的重要知识点
一、什么是异常处理 异常处理是程序设计中用于捕获和处理运行时错误的机制。异常分为两大类,一个是Checked异常,一个是Runtime异常。 异常分类结构: Throwable类主要方法: getMessage()...
掌握Java多线程:提升性能的关键技术与最佳实践
一、什么是线程 线程是并发编程的基本单位,它是程序执行的最小单位,Java程序默认单线程,所有程序都在主线程中运行。一个进程通常包含多个线程,这些线程共享进程的资源。线程间可以通过共享内存进行通信,这使得线程的创建和上下文切换比进程更为轻量和高效。 进程有独立的内存空间和资源,每个进程是相互隔离的。Java应用程序运行在JVM(Java虚拟机)上,JVM本身就是一个进程。 二、如何创建线程 (1)继承Thread类 通过继承Thread类并重写run方法来创建线程。每个Thread对象代表一个线程。 class...
1 2 3 10