框架大集合
文章平均质量分 94
Java开发主流框架分析
sun_tantan
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Kafka】KafkaConsumer消费者客户端实现原理
目录一、消费者和消费组二、消息投递模式三、消费者客户端1. 订阅主题与分区2. 消息消费四、消费端位移五、消费再均衡、再均衡监听器六、消费者拦截器七、多线程实现1. 每个线程实例化一个KafkaConsumer对象2. 仅多线程处理消息一、消费者和消费组消费者:订阅kafka中的主题Topic,并且从订阅的主题上拉取消息。消费组:每个消费者都有一个对应的消费组,当消息发布到主题后,只会被投递给订阅它的每个消费组中的一个消费者。如图,某个Topic中有4个分区,有俩个消费组都订阅了这个主原创 2021-10-27 19:48:13 · 1665 阅读 · 0 评论 -
【Kafka】KafkaProducer生产者客户端实现原理
目录一、发送消息发送消息的模式二、分区器三、生产者拦截器四、实现原理一、发送消息 KafkaProducer<String,String> producer = new KafkaProducer<>(props); ProducerRecord<String,String> record = new ProducerRecord<>(topic,"hello"); producer.send(record)构建的消息对象Produc原创 2021-10-17 00:32:02 · 520 阅读 · 0 评论 -
【Kafka】体系结构与基本概念
目录一、Kafka体系结构基本概念一、Kafka体系结构kafka被定位为一个分布式流式处理平台,以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。其所扮演的三大角色:消息系统与传统的消息中间件都具备系统解耦、冗余存储、流量削峰、异步通信、扩展性、可恢复性等功能。与此同时,kafka还提供了大多数消息系统难以实现的消息顺序性保障和回溯消费的功能。存储系统kafka把消息持久化到磁盘,相比于其他内存存储的系统而言,有效地降低了数据丢失的风险。流式处理平台不仅为原创 2021-10-17 00:20:59 · 371 阅读 · 0 评论 -
【Zookeeper】服务启动、请求处理、数据存储...内部实现原理
目录一、服务器启动1. 单机版服务器启动2. 集群版服务器启动二、请求处理三、客户端四、数据与存储一、服务器启动1. 单机版服务器启动大概可以分为以下五个步骤:配置文件解析初始化数据管理器创建Zookeeper数据管理器FileTxnSnapLog,FileTxnSnapLog是Zookeeper上层服务器和底层数据存储之间的对接层,提供了一系列操作数据文件的接口,包括事务日志文件和快照数据文件。初始化网络IO管理器创建ServerCnxnFactory,在Zookeeper中可原创 2021-10-15 00:38:19 · 462 阅读 · 0 评论 -
【Zookeeper】应用场景及实现原理
目录1. 数据发布订阅——Watch机制2. 负载均衡——Watch机制3.命名服务(分布式全局ID)——顺序节点4. 集群管理——临时节点 + Watch机制5. Master选举——并发安全6. 分布式锁——临时顺序节点 + Watch机制6.1 排它锁6.2 共享锁7. 分布式队列——临时顺序节点 + Watch机制1. 数据发布订阅——Watch机制如:全局配置信息(配置更新频繁)推拉结合客户端向服务器注册自己关注的节点、一旦该节点的数据发生变更,那么服务器就向相应的客户端发送Watch原创 2021-09-28 19:43:22 · 468 阅读 · 0 评论 -
【Zookeeper】Session会话机制及实现
目录Session结构会话创建会话管理会话清理会话激活会话重连Session结构Zookeeper在执行任何请求之前,都需要在客户端和服务端之间先建立Session,如客户端的请求顺序执行、watcher的通知机制等。所谓Session,就是客户端与服务端之间创建的一个 TCP长链接 。Session结构SessionId:会话idTimeOut:会话从新建到关闭的时长,由Zookeeper服务端管理ExpirationTime:创建时间+TimeOut。是一个绝对时间。IsClosing:原创 2021-09-27 19:22:45 · 789 阅读 · 0 评论 -
【Zookeeper】Watcher监听机制实现分析
目录一、Zookeeper的节点模型——ZNode二、Watcher监听机制涉及到的关键接口、类关键流程1. 客户端注册watcher2. 服务端注册watcherWatcher注册流程图3. 服务端触发Watcher4. 客户端回调Watcher监听机制的特点一、Zookeeper的节点模型——ZNode路径引用:我们可以通过路径引用的方式访问ZNode节点。对节点的访问必须从根节点开始写起,因为Zookeeper中是通过绝对路径作为key,Znode本身作为value进行存储的。与Linux文件原创 2021-09-23 17:42:19 · 1113 阅读 · 0 评论 -
【Zookeeper】分布式原理与ZAB协议、顺序一致性保证
目录一、Zookeeper——分布式协调系统二、分布式理论分布式原理CAP最终一致性原理BASE分布式事务2PC、3PC三、Zookeeper的节点模型——ZNode四、Watcher监听机制涉及到的关键接口、类关键流程1. 客户端注册watcher2. 服务端注册watcherWatcher注册流程图3. 服务端触发Watcher4. 客户端回调Watcher监听机制的特点一、Zookeeper——分布式协调系统Zookeeper是一个分布式的、开源的分布式应用程序协调服务。是Google的Chubb原创 2021-09-23 17:40:56 · 888 阅读 · 0 评论 -
【Redis】多路复用IO、Reactor模型
目录一、UnixIO的五种类型非阻塞IO事件轮询(多路复用)附. Java中的线程模型Redis是个单线程程序。因为它所有的数据都存在内存中,所有的运算都是内存级别的运算。那么既然是单线程,如何处理并发的客户端连接?一、UnixIO的五种类型一个输入操作通常包括两个阶段:等待数据准备好:等待数据从网络中到达。当所等待分组到达时,它被复制到内核中的某个缓冲区。从内核向进程复制数据:把数据从内核缓冲区复制到应用进程缓冲区。一般情况下有5种类型:(同步)阻塞式 I/O应用进程被阻塞,直到数原创 2021-08-19 00:41:54 · 1341 阅读 · 0 评论 -
【Redis】分布式Redis与高可用性——主从同步、哨兵模式、集群模式
35-CodisVSRedisCluster:我该选择哪一个集群方案?Redis(9)——史上最强【集群】入门实践教程目录一、主从同步CAP原理同步策略:指令同步、快照同步二、Sentinel哨兵模式自动故障转移配置提供三、集群部署:Codis、ClusterCodisRedis ClusterCodis与Redis Cluster的对比一、主从同步即使一些企业没有使用Redis集群,但至少都做了主从。当Master节点挂掉的时候,让Slave节点过来接管,服务就可以继续。否则主节点需要经过数据.原创 2021-08-17 00:30:21 · 977 阅读 · 0 评论 -
【Redis】持久化
Redis(7)——持久化【一文了解】目录为什么要持久化?一、快照COW机制二、AOF日志三、Redis 4.0混合持久化为什么要持久化?Redis的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证Redis的数据不会因为故障而丢失,这种机制就是Redis的持久化机制。Redis的持久化机制有两种,第一种是快照,第二种是AOF日志。一、快照快照是一次全量备份,是内存数据的二进制序列化形式,在存储上非常紧凑。但我们知道,Redis 是一个 单线程 的程序,这意味着,.转载 2021-08-10 09:12:48 · 191 阅读 · 0 评论 -
【Redis】常见功能:分布式锁、延时队列、限流...
分布式锁的实现之 redis 篇Redis(3)——分布式锁深入探究《Redis深度历险 核心原理与应用实战》目录一、为什么要使用分布式锁?二、Redis分布式锁的实现——setnx问题1. setnx与expire是两条指令不能保证原子性问题2. 超时问题超时导致锁误解除超时导致并发问题3. 可重入性借助线程ThreadLocal使用Hash结构问题4. 集群环境下RedLock一、为什么要使用分布式锁?我们在系统中修改已有数据时,需要先读取,然后进行修改保存,此时很容易遇到并发问题。由于修.原创 2021-08-08 23:49:49 · 946 阅读 · 0 评论 -
【Redis】五种存储类型及其底层数据结构
Redis(Remote Dictionary Service远程字典服务)目录1. Redis的五种存储类型1.1 String字符串1.2 List列表1.2.1 ZipList压缩列表1.2.1 QuickList快速链表1.3 Hash字典1.4 Set集合1.5 Zset有序列表1. Redis的五种存储类型1.1 String字符串字符串是redis中最简单的数据结构,其内部表示就是一个字符数组。SDS动态字符串(simple dynamic string)Redis中所有场景中.原创 2021-08-07 23:27:53 · 2796 阅读 · 0 评论 -
【SpringMVC】请求的执行过程与源码分析
目录1. SpringMVC是什么?2. SpringMVC框架工作过程组件说明启动过程1. ContextLoaderListener2. DispatcherServletQ&A1. SpringMVC是什么?JavaEE是用来开发传统的B/S架构的一种思想,它为我们提供了一系列的标准,如Servlet、JPA等而Spring的定位就是帮助我们解决直接使用JavaEE的过程中的问题,并总结到了一套框架中,比如IOC控制翻转。经过多年发展,Spring发布了很多组件:spring-co原创 2021-06-14 23:56:29 · 241 阅读 · 1 评论 -
About MyBatis——有关Mybatis,自问自答系列
目录1. Mybatis为什么只调用接口就可以运行SQL?2. Mybatis中的批处理3. Mybatis中的二级缓存4. Spring + Mybatis1. Mybatis为什么只调用接口就可以运行SQL?存储首先是xml配置文件的解析,一开始mybatis将每一个CRUD的节点,解析为一个MappedStatement存储在Configuration中,其唯一标志statemenId:namespace+methodName;创建代理客户端首先需要调用SqlSession.getMapp原创 2021-06-09 11:49:22 · 157 阅读 · 0 评论 -
【MyBatis详解】——动态SQL解析与执行原理
目录Demo:动态SQL1. Xml中Sql节点解析——存储到SqlSource对象2. Sql执行——通过调用SqlSource.getBoundSql得到动态处理过的Sql1. SqlNode.apply处理动态内容2. SqlSourceParser.parse替换#符号为?Demo:动态SQL<select id="countByMap" resultType="int"> select count(id) from person <where&原创 2021-06-02 00:54:55 · 902 阅读 · 0 评论 -
【MyBatis详解】——从Xml配置解析到SQL执行过程
目录架构使用DemoMybatis核心流程1. 创建SqlSessionFactory配置解析——SQL解析(存储MappedStatement到Configuration中)架构Mybatis的架构整体可以分为3层:接口层也就是和数据库进行交互,核心接口为SqlSession,一个SqlSession对应着一次数据库会话,那么其生命周期不是永久的,理论上每次访问数据库时都需要创建它。形式分为两种,一种是使用Mapper接口,一种是基于Mybatis提供的Api;Mybatis提供的Api原创 2021-06-02 00:39:31 · 4688 阅读 · 6 评论
分享