自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (2)
  • 收藏
  • 关注

原创 【说清架构系列】万字长文,说清Redis分布式高可用架构,打造不宕机的缓存系统

Redis的高可用架构就像一座冰山,表面上看起来简单,但内部蕴含着丰富的技术细节和设计思想,作为架构师,我们需要深入理解这些原理,才能在实际工作中设计出稳定可靠的系统,希望本文能够帮助你更深入地理解Redis分布式高可用架构,从入门到精通,逐步掌握这一技术栈

2025-04-03 07:51:32 789

原创 【说清架构系列】万字长文剖析ElasticSearch高可用架构,内含代码,从入门到精通的避坑实战

ElasticSearch作为一个分布式搜索和分析引擎,具有高扩展性、高可用性和近实时性的特点。它的核心架构包括集群、节点、索引、分片等组件,通过分布式存储和计算实现了大规模数据的处理能力。

2025-04-02 07:45:00 1289

原创 Kafka最新架构深度剖析,一文掌握分布式消息引擎核心架构

Kafka的发展历程告诉我们,优秀的架构设计必定是简单且高效的,从最初的消息队列到如今的事件流平台,Kafka始终保持着其设计哲学,简单,高性能,可扩展,在实际工作中,不仅要掌握Kafka的使用方法,更要理解其设计思想,只有这样才能在合适的场景选择合适的技术解决方案,希望这篇文章能帮助你更好地理解和应用Kafka,如果你想深入学习,可以阅读官方文档和相关书籍,也可以关注我的公众号,我会持续分享更多架构设计和技术实践的经验,技术没有终点,让我们一起在学习的路上前行。

2025-04-01 07:37:32 609

原创 【说清架构系列】万字长文剖析MySQL高可用架构,内含代码,从入门到精通的避坑实战

MySQL高可用是任何严肃的生产系统都必须考虑的问题。从简单的主从复制到复杂的分布式集群,每种方案都有其适用场景和优缺点。

2025-03-31 07:55:55 636

原创 架构师必备!一文吃透分布式事务框架选型,从入门到精通

分布式事务是分布式系统中不可避免的挑战,随着微服务架构的普及,掌握分布式事务的原理和实践变得越来越重要。

2025-03-31 06:45:00 917

原创 万字长文!说清缓存一致性解决方案,从入门到精通的架构师指南

万字长文!说清缓存一致性解决方案

2025-03-30 22:43:46 947

原创 分布式锁,万字长文,从入门到实战,看这一篇就够了

分布式锁看似简单,实则蕴含了丰富的分布式系统理论和实践经验。本文能帮助大家更全面、更深入地理解分布式锁的工作原理和实现方式,在实际项目中更好地应用这一技术。

2025-03-30 08:33:42 693

原创 面试被吊打!Redis跳表,难道只有我不知道吗

面试过程中,Redis作为微服务中不可缺少的技术应用,经常会出现在面试官的啼哭中,而跳表又是Redis中非常重要的一个数据结构,它支撑着Redis有序集合(Sorted Set)的高效实现。

2025-03-29 15:07:59 606

原创 深入理解分布式事务Saga,从入门到面试热点分析详解

深入理解分布式事务Saga,从入门到面试热点分析详解

2025-03-29 08:23:43 821

原创 Kafka消息丢失全解析!原因、预防与解决方案

Kafka消息丢失全解析,原因、预防与解决方案

2025-03-28 08:09:24 1234

原创 Reactor网络模型详解,高性能服务器的心脏

为什么Nginx能支撑如此多的并发连接?又或者Redis为何能达到惊人的性能?这篇文章会告诉你答案

2025-03-27 07:26:36 873

原创 Linux I/O多路复用技术详解,从select到epoll的进化之路

Linux I/O多路复用技术详解,从select到epoll的进化之路

2025-03-26 07:51:15 639

原创 深入浅出 RocketMQ 与 Kafka 的持久化机制全解析

深入浅出 RocketMQ 与 Kafka 的持久化机制全解析

2025-03-25 07:15:00 2476

原创 考验Java深度!零拷贝技术,mmap和sendfile深度对比

Java世界中两种超强的零拷贝技术,也是面试中经常会遇到的问题,mmap和sendfile

2025-03-24 06:45:00 1470

原创 HTTP长连接与短连接的前世今生

理解HTTP连接的工作原理对于构建高性能的Web应用至关重要

2025-03-23 16:04:49 1211

原创 RocketMQ新消费者加入后的队列一致性保障机制详解

RocketMQ新消费者加入后的队列一致性保障机制详解

2025-03-22 08:36:58 976

原创 RocketMQ队列路由的故障延时机制深度解析

RocketMQ队列路由的故障延时机制深度解析

2025-03-20 06:30:00 593

原创 RocketMQ的Rebalance机制详解

RocketMQ的Rebalance机制详解

2025-03-19 07:30:00 547

原创 尴尬!面试被问RocketMQ拉取消息模式有哪些

RocketMQ拉取消息模式详解

2025-03-18 09:04:49 362

原创 Raft协议详解,分布式一致性的艺术

Raft协议详解 ,分布式一致性的艺术

2025-03-17 09:02:49 933

原创 中国支付清算体系全解析,小白也能看懂的金融“地下水管道“

中国支付清算体系全解析,小白也能看懂的金融"地下水管道"

2025-03-12 09:28:45 626

原创 一文读懂,深入解析Java AQS源码,建议收藏!

Java并发编程,AQS(AbstractQueuedSynchronizer)深度剖析

2025-03-11 09:34:29 401

原创 Java线程池深度解析,从源码到面试热点

Java线程池深度解析,从源码到面试热点

2025-03-09 22:09:20 1003

原创 支付一定要知道,网联和银联的差异在哪里

历史最全,一文读懂网联和银联的差异

2025-03-04 08:13:35 1076

原创 LinkedList,经典永不过时,面试官角度深度剖析

在这种数据机构中,如果是添加和删除,只需要改变指针的引用即可,时间复杂度为O(1),但是查询需要遍历节点才能找到对应的节点值,但是linkedlist做了优化,会将遍历分成前后两部分,然后判断查询的索引在那一块区域,如果在前半部分,从头结点开始遍历,如果是后半部分,从尾结点开始遍历,总的来说,时间复杂度为O(n)。LinkedList,首先说说它的链表数据结构,清楚链表的特性,可以帮助更好的匹配LinkedList的使用场景。通过上面代码的分析,可以发现,全程操作是没有做任何线程安全处理的,所以也是线程。

2025-02-09 21:50:21 764

原创 HashMap,经典永不过时,不一样的视角和面试技巧

有两个线程A和B,A线程向HashMap中插入(key-A,value-A),B线程向HashMap中插入(key-B,value-B)通过索引计算,通过hash计算后,key-A和key-B的值都为3,但是key-A.equals(key-B)为false,也就是说值不相等,那么都会往table[3]的位置插入,假设线程A和B同时执行,此时都通过。在进行索引位进行计算的时候,如果是2的倍数,在进行索引取模进行计算的时候,可以利用位运算进行取模,加快计算速度,提升性能。key:记录存储元素的key。

2025-01-31 21:03:57 747

原创 ArrayList,经典永不过时,掌握设计亮点和面试技巧

这里逻辑比较简单,首先判断elementData这个变量是否等于DEFAULTCAPACITY_EMPTY_ELEMENTDATA,这里DEFAULTCAPACITY_EMPTY_ELEMENTDATA是一个空的Object[],如果elementData是空Object[],那么指定的容量minCapacity和默认的容量DEFAULT_CAPACITY比较大小,这里的DEFAULT_CAPACITY=10,意思就是初始化容量是10,随着元素的添加,超过10就返回传递的容量值size+1。

2025-01-31 16:50:43 797

原创 Git常用命令

1 初始化Git仓库Git说白了就是一个版本仓库,每个版本都关联本地磁盘中具体的文件,那么如何将文件关联到仓库中呢。(1)首先先进入本地磁盘文件目录(2)先使用git 仓库状态命令查看仓库情况发现当前目录还不是git仓库(3)执行git仓库初始化命令Git init (4)查看仓库状态仓库中状态正常,没有任何文件2仓库文件管理初体验(1)执行touch命令创建一个java文件(2)查看新增文件的状态Git statu...

2022-05-18 23:25:00 1066

原创 Git安装和配置

Linux安装如果您使用 Fedora(或任何密切相关的基于 RPM 的发行版,例如 RHEL 或 CentOS),您可以使用dnf:sudo dnf install git -all如果您使用的是基于 Debian 的发行版,例如 Ubuntu,请尝试apt:sudo apt install git-allMacOS安装在 Mac 上安装 Git 有多种方法。最简单的可能是安装 Xcode 命令行工具。在 Mavericks (10.9) 或更高版本上,您只需第一次尝试g

2022-05-11 23:41:09 254

原创 什么是Git

1 是快照不是差异Git 与任何其他 VCS(包括 Subversion 和朋友)之间的主要区别在于 Git 对其数据的思考方式。从概念上讲,大多数其他系统将信息存储为基于文件的更改列表。这些其他系统(CVS、Subversion、Perforce、Bazaar 等)将它们存储的信息视为一组文件以及随时间对每个文件所做的更改(这通常被描述为基于 delta 的版本控制)。将数据存储为每个文件的基本版本的更改Git 不会以这种方式思考或存储其数据。相反,Git 认为它的数据更像是一个微型文件系.

2022-04-27 22:38:16 295

原创 大话GIT之版本管理简介

1 版本管理是什么相信大家在玩游戏的时候,都有这样的体验,比如游戏有5个关卡,大杠同学第一天就过了3关,非常开心,但是第二天要上班,就会保存游戏进度,等到下次的时候再继续,然后第二次又过了1关到了第4关,马上就要通关了,这个时候大杠在官网发现第3关还有隐藏彩蛋没有体验到,于是保存了第4关,把游戏进度设置为第3关,重新打怪升级,毕竟花钱买的游戏,一定要榨干每一个体验,但是玩着玩着,发现第3关的新玩法玩不下去了,大杠同学很烦,不想在第3关继续浪费时间,但是又有些遗憾,希望通关后再重新来试一下,于是又保存了第

2022-04-23 11:16:22 332

原创 Redis脑裂问题

背景假设现在有三台机器,分别安装了redis服务,结构如图故障发生:如果此时master服务器所在区域网络通信出现异常,导致和两台slave机器无法正常通信,但是和客户端的连接是正常的。那么sentinel就会从两台slave机器中选举其中一个作为新的master来处理客户端请求。如图这个时候,已经存在两台master服务器,client发送的数据会持续保存在旧的master服...

2019-11-02 09:20:03 4770 3

原创 设计模式-装饰者模式

什么是装饰者模式装饰模式是在不使用继承和不改变原类文件的情况下,动态的扩展一个对象的功能。组成结构1.Component(抽象组件又叫被装饰对象的基类)2.ConcreteComponent(具体组件又叫具体被装饰对象)3.Decorator(装饰者抽象类)4.ConcreteDecorator(具体装饰者)假设一个场景在学校门口有一个卖煎饼的早餐车,主要是...

2019-10-31 23:03:23 144

原创 设计模式-简单工厂模式

简单工厂模式的优缺点优点简单工厂模式的核心是工厂类,其中包含了必要的判断逻辑,由此决定应该去创建哪个对象,客户端不用管理创建的具体逻辑,如果逻辑非常复杂,对于客户端来说更加方便简捷。缺点创建所有产品的逻辑都放在工厂类中,工厂需要知道每一种产品的创建过程,逻辑过于集中,添加新的产品生产逻辑时,势必会违反开闭原则,需要修改工厂类。简单工厂模式代码package com....

2019-10-29 20:36:36 137

原创 设计模式-模板模式

背景现在餐厅有两个服务员,一个人负责煮茶,一个人负责煮咖啡,步骤如下煮茶:1.把水烧开2.倒入茶叶3.加水煮咖啡:1.把水烧开2.倒入咖啡3.加水不用设计模式的实现package com.example.designMode.template;public class Origin { public static class TeaP...

2019-10-29 13:40:24 161

原创 设计模式-中介者模式

背景现在有三个模块,A,B,C,这三个模块之间存在互相调用使用设计模式之前package com.design.mode.meditor;public class Origin { public static class ModuleA { public void executeModule() { System.out.prin...

2019-10-27 23:12:57 246

原创 设计模式-观察者模式

背景在军训的时候,当教官发起命令立正的时候,所有的学员必须执行教官的命令。在这个场景中,教官是一个被所有学员观察的对象,一旦教官的指令发出,学员就必须做出相应的反应。代码package com.design.mode.observer;import java.util.ArrayList;import java.util.List;public class Observer...

2019-10-27 21:11:20 128

原创 设计模式-策略模式

背景根据不同的折扣政策,计算商品的价格使用策略模式之前package com.design.mode.strategy;public class Origin { public static void main(String[] args) { int discountRate = 8; discount(discountRate); ...

2019-10-27 20:34:32 200

原创 零拷贝

1.为什么使用零拷贝我们假设一个场景,将本地文件上传到网络上,伪代码如下:read(file, tmp_buf, len);write(socket, tmp_buf, len);注意,别看代码操作就读和写两个,实际在操作系统中涉及到4次以上的数据复制以及上下文切换,如图注意:该图分成上下两部分,上面是上下文切换,下面是对应的数据在内存中的操作过程是这样的:步骤一:...

2019-07-30 22:25:50 472

原创 链表实现栈结构及应用场景描述

1.栈的特点仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。如果用链表实现栈,怎么利用链表去做呢,我们可以把链表头看成栈顶,链尾堪称栈底,添加元素的时候,元素添加到链表头,删除的时候,删除链表头即可。2.代码实现2.1先构建一个链表实现,方便自定义链表的操作代码如下,具体实现可参考上篇文章public class StackBaseLink&l...

2019-07-08 23:37:28 1014

springboot最新参考手册(pdf)

最新版官网springboot参考手册,日期:2017-12-27下载

2017-12-27

spring+springmvc+mybatis框架

整合了spring+springmvc+mybatis+log4j+c3p0,百分百成功运行

2017-10-05

空空如也

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

TA关注的人

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