自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小工匠

show me the code ,change the world

  • 博客(1920)
  • 资源 (12)
  • 收藏
  • 关注

原创 Spring Session - 使用Spring Session从零到一构建分布式session

文章目录快速入门 Spring Session + RedisSpring Session 原理快速入门 Spring Session + RedisSpring Session 原理Spring Session 主要是利用过滤器,偷梁换柱,实现session储存无感知的切换。Spring Session 提供了 SessionRepositoryFilter 过滤器,它会过滤请求时,将请求 HttpServletRequest 对象包装成 SessionRepositoryReq

2021-02-15 23:59:17 12128 2

原创 Spring Session - Cookie VS Session VS Token 以及 Session不一致问题的N种解决方案

文章目录Cookie VS Session VS TokenSpring Session 概述Cookie VS Session VS Token众所周知 HTTP请求是无状态的, 随着交互式Web应用的兴起,要管理会话,必须记住哪些人登录了系统, 就想着颁发一个会话标识(session id), 实际上呢就是一个随机字符串,每个人收到的都不一样 。这样每次向系统发起HTTP请求的时候,把这个字符串给一并捎过来, 这样服务端就可以很好地区分了。随着用户数据量的激增 , 每个人只需要保存自己

2021-02-15 21:50:15 12952 9

原创 OS - 计算机组成原理及CPU主频揭秘

文章目录大纲视图计算机的基本组成计算机的指令和计算计算机性能指标大纲视图我们把整个计算机组成原理的知识点拆分成了四大部分,分别是计算机的基本组成、计算机的指令和计算、处理器设计,以及存储器和I/O设备。计算机的基本组成运算器、控制器、存储器、输入设备和输出设备这五大基本组件 . 除此之外,你还需要了解计算机的两个核心指标:性能和功耗 。计算机的指令和计算一条条指令执行的控制过程,就是由计算机五大组件之一的 控制器来控制的。实现这些运算功能的ALU(Arithmetic LogicUn

2021-02-14 13:08:48 12580

原创 Java - 探究前后分离带来的跨域问题

文章目录为什么会产生跨域问题同源策略为什么会产生跨域问题1995年,Netscape 公司出于安全的考虑在浏览器中引入了“同源策略”。同源策略浏览器端对请求的处理中,如果两个 URL 的协议、域名和端口都相同,我们就称这两个URL 同源我们来举几个例子同源 http://www.xxxx.com/index http://www.xxxx.com/module/path1非同源 http://www.xxxx.com/index https://www.xxxx.com/mo

2021-02-12 14:40:10 13575 1

原创 深入理解分布式技术 - ServiceMesh 服务网格

文章目录概述Sidecar 设计模式Service Mesh 服务网格What's Service Mesh ?Service Mesh特点Service Mesh VS API 网关Service Mesh 解决方案IstioLinkerd概述微服务的部署架构中有一个SideCar边车模式,并且基于边车模式,扩展出了 Service Mesh 服务网格的概念。 我们一起来探讨下 Service Mesh 相关的知识。Sidecar 设计模式在了解服务网格之前,先来看一个微服务的设计模式——

2021-02-11 21:57:54 12443

原创 深入理解分布式技术 - 容器化技术

文章目录概述虚拟化技术容器化技术概述随着各种云服务的发展,越来越多的服务运行在以 Docker 为代表的容器之内。相比传统虚拟化技术,容器技术是一种更加轻量级的操作系统隔离方案,可以将应用程序及其运行依赖环境打包到镜像中,通过容器引擎进行调度,并且提供进程隔离和资源限制的运行环境。虚拟化技术虚拟化技术通过 Hypervisor 实现虚拟机与底层硬件的解耦,虚拟机实现依赖 Hypervisor 层,Hypervisor 是整个虚拟机的核心所在。Hypervisor 也叫作虚拟机监视器 VMM

2021-02-11 21:04:46 11996 4

原创 深入理解分布式技术 - Dubbo vs Spring Cloud

文章目录概Dubbo总体架构应用特性Spring Cloud总体架构应用特性Dubbo vs Spring Cloud功能对比调用方式服务发现开发成本概提到微服务开源框架,不可不说的是 Dubbo 和 Spring Cloud,这两大框架应该是大家最熟悉的微服务解决方案 .DubboDubbo 是阿里开源的一个分布式服务框架,目的是支持高性能的远程服务调用,并且进行相关的服务治理。总体架构包括了下面几个角色:Provider,也就是服务提供者,通过 Container 容器来承载;C

2021-02-11 16:09:46 11503

原创 深入理解分布式技术 - 配置中心

文章目录WhyCaseHow分布式配置管理的特性要求选型DiamondDisconfApollo小结Why随着业务的发展,应用系统中的配置会越来越多,配置之间也有不同的业务特点,比如业务依赖的数据库配置、缓存信息配置、索引存储配置等。这类配置一般比较稳定,不会频繁更改,通常会放在工程中作为配置文件随应用一起发布。除了这些配置,还有一部分配置会经常发生修改,比如限流降级开关配置、业务中的白名单配置等。这些配置项除了变更频繁,还要求实时性,如果采取和应用一起发布的方式,那么每次变更都要重新发布服务,非常

2021-02-11 15:39:53 11830

原创 深入理解分布式技术 - 分布式调用跟踪

文章目录Why业务场景Why分布式服务拆分以后,系统变得日趋复杂,业务的调用链也越来越长,如何快速定位线上故障,就需要依赖分布式调用跟踪技术.随着分布式服务架构的流行,特别是微服务等设计理念在系统中的应用,系统架构变得越来越分散.可以看到,随着服务的拆分,系统的模块变得越来越多,不同的模块可能由不同的团队维护,一个请求可能会涉及几十个服务的协同处理, 牵扯到多个团队的业务系统。假设现在某次服务调用失败,或者出现请求超时,需要定位具体是哪个服务引起的异常,哪个环节导致的超时,就需要去每个服务里

2021-02-11 15:04:12 13231 4

原创 深入理解分布式技术 - 服务注册与发现背后的逻辑

文章目录QuestionWhyHow典型的服务发现组件ZooKeeperEurekaNacos一致性对比Question在分布式服务中:为什么需要服务注册和发现?常用的服务发现组件有哪些?服务注册和发现对一致性有哪些要求呢?Why分布式系统下微服务架构的一个重要特性就是可以快速上线或下线,从而可以让服务进行水平扩展,以保证服务的可用性。假设有一个服务,随着业务发展,服务器负载越来越高,需要新增服务器。如果没有服务注册与发现,就要把新的服务器地址配置到所有依赖会员模块的服务,并相继重启

2021-02-10 23:04:13 11608

原创 深入理解分布式技术 - 微服务为什么需要API 网关

文章目录概Case网关的优缺点优点缺点微服务网关选型Spring Cloud ZuulSpring Cloud Gateway小结概这里我们来讨论下为什么微服务需要 API 网关 。网关的概念来源于计算机网络,表示不同网络之间的关口。在系统设计中,网关也是一个重要的角色,其中最典型的是各大公司的开放平台,开放平台类网关是企业内部系统对外的统一入口,承担了很多业务,比如内外部数据交互、数据安全、监控统计等功能。在微服务架构中,API 网关的作用和开放平台等传统网关又有一些不同,下面一起来看一下微服

2021-02-10 22:29:38 11784

原创 深入理解分布式技术 - RPC (Remote Procedure Call)

文章目录What's RPCWhat’s RPCRPC(Remote Procedure Call)是一种进程间通信方式. 它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC 允许程序调用另一个地址空间的过程或函数,而不用程序员显式编码这个远程调用的细节。即无论是调用本地接口/服务的还是远程的接口/服务,本质上编写的调用代码基本相同。比如两台服务器 A、B,一个应用部署在 A 服务器上,想要调用 B 服务器上应用提供的函数或者方法,由于不在一个内存空间,则不能直

2021-02-10 21:22:54 12555 4

原创 Elasticsearch-circuit_breaking_exception [parent] Data too large, data for [<http_request>]

文章目录异常信息异常信息{"root_cause":[{"type":"circuit_breaking_exception","reason":"[parent] Data too large, data for [<http_request>] would be [2904434582/2.7gb], which is larger than the limit of [2856189952/2.6gb], real usage: [2904434088/2.7gb],new

2021-02-07 14:09:31 14872 1

原创 OS - 计算机基本组成

CPU (Central Processing Unit) 中央处理器 。 简单来说, CPU是一个超级精细的印刷电路版。

2021-02-06 10:07:46 11718 1

原创 OS - MMAP初探

文章目录What's mmapmmap 源码mmap() 的底层原理虚拟内存空间与物理内存空间vm_area_struct 结构对文件的读写What’s mmaphttps://man7.org/linux/man-pages/man2/mmap.2.html简单来说: mmap() 系统调用能够将文件映射到内存空间,然后可以通过读写内存来读写文件mmap 源码 #include <sys/mman.h>void *mmap(void *addr, size_t leng

2021-02-05 01:17:51 11623 3

原创 Java - 从文件压缩聊一聊I/O一二事

文章目录背景问题复现背景有个文件压缩的需求,小伙伴一顿操作猛如虎 , 小文件那是咔咔一顿骚可是突然一个几十兆的文件,跑了100秒还没出来。。。。/** * @author 小工匠 * @version 1.0 * @description: TODO * @date 2021/2/3 16:40 * @mark: show me the code , change the world */public class FileCompress { //要压缩的文件所

2021-02-03 22:56:05 11416

原创 深入理解分布式技术 - 分库分表后的扩容解决方案

文章目录概述路由规则与扩容方案概述在实际开发中,数据库的扩容和不同的分库分表规则直接相关,今天我们从系统设计的角度,抽象了一个项目开发中出现的业务场景,从数据库设计、路由规则,以及数据迁移方案的角度进行讨论。假设这样一个业务场景,现在要设计网站的订单数据库模块,经过对业务增长的估算,预估三年后,数据规模可能达到 6000 万,每日订单数会超过 10 万。首先选择存储实现,订单作为电商业务的核心数据,应该尽量避免数据丢失,并且对数据一致性有强要求,肯定是选择支持事务的关系型数据库,比如使用

2021-02-03 11:27:57 11964 2

原创 深入理解分布式技术 - 分库分表后的唯一主键解决方案

文章目录Question生成主键的常见方案UUID ? (不推荐)Snowflake缺点:时钟回拨数据库维护区间分配总结Question在单库单表时,业务 ID 可以依赖数据库的自增主键实现,现在我们把存储拆分到了多处,如果还是用数据库的自增主键,势必会导致主键重复。 那怎么办呢?生成主键的常见方案一个最直接的方案是使用单独的自增数据表,存储拆分以后,创建一张单点的数据表,比如现在需要生成订单 ID,我们创建下面一张数据表:CREATE TABLE IF NOT EXISTS `order

2021-02-02 23:06:52 11442

原创 深入理解分布式技术 - 实践分库分表

文章目录Question为啥要分库分表?读写的数据量限制数据库连接限制分库分表的原理Question读写分离优化了互联网读多写少场景下的性能问题,考虑一个业务场景,如果读库的数据规模非常大,除了增加多个从库之外,还有其他的手段吗?方法总比问题多,实现数据库高可用,还有另外一个撒手锏,就是分库分表.为啥要分库分表?业务产生的数据规模飞速增长,传统的单库单表架构不足以支撑业务发展,存在下面的性能瓶颈:读写的数据量限制数据库的数据量增大会直接影响读写的性能,比如一次查询操作,扫描 5 万条数

2021-02-02 21:17:21 11442 1

原创 深入理解分布式技术 - 读写分离场景及注意事项解读

文章目录读多写少场景读多写少场景读多写少的典型场景,读和写的请求对比可能差了不止一个数量级。为了不让数据库的读成为业务瓶颈,同时也为了保证写库的成功率,一般会采用读写分离的方案来保证。读写分离就是分离读库和写库操作,从 CRUD 的角度,主数据库处理新增、修改、删除等事务性操作从数据库处理 SELECT 查询操作具体的实现上,可以有一主一从,一个主库配置一个从库;也可以一主多从,也就是一个主库,但是配置多个从库,读操作通过多个从库进行,支撑更高的读并发压力。读写分离的实现是把访问的压力

2021-02-02 16:47:49 11567

原创 深入理解分布式技术 - 分布式事务总结回顾

文章目录常见问题常见问题数据一致性和分布式事务是互联网分布式系统设计中必须要考虑的,所以对分布式事务的考察是中高级工程师面试必须跨过的一道门槛。面试官通常会通过一个实际的系统设计题来展开提问,以考察候选人对分布式基础理论的理解、对各种数据一致性模型的掌握,以及对分布式下事务实现的原理、机制和各种实现手段的熟悉程度。下面我模拟一个实际的面试场景,面试官可能会对你提出以下一连串的问题,可以检测一下自己在学习中的掌握程度:请说说你对分布式系统 CAP 理论的理解,CAP 分别代表什么含义?

2021-01-31 16:40:23 11569 1

原创 深入理解分布式技术 - Redis 分布式锁解决方案

文章目录Pre分布式锁特征使用 setnx 实现分布式锁使用 setnx 和 expire 实现使用 set 扩展命令实现分布式锁的高可用集群下分布式锁存在哪些问题Redlock 算法的流程PreRedis进阶-细说分布式锁Redis 可以通过 set key 方式来实现分布式锁,但实际情况要更加复杂,比如如何确保临界资源的串行执行,如何及时释放,都是需要额外考虑的。那一个完备的分布式锁应该具备哪些特性,以及如何使用 Redis 来一步步优化实现呢?分布式锁特征一个完备的分布式锁,需要支持

2021-01-31 16:16:14 11389

原创 深入理解分布式技术 - 分布式锁的应用场景和主流方案

文章目录案例案例秒杀、大促之类的活动,一个共同特点就是访问量激增,在高并发下会出现成千上万人抢购一个商品的场景。虽然在系统设计时会通过限流、异步、排队等方式优化,但整体的并发还是平时的数倍以上,参加活动的商品一般都是限量库存,如何防止库存超卖,避免并发问题呢?下面提供一个解决方案: 分布式锁我们都知道,在业务开发中,为了保证在多线程下处理共享数据的安全性,需要保证同一时刻只有一个线程能处理共享数据。Java 语言给我们提供了线程锁,开放了处理锁机制的 API,比如 Synchronized、

2021-01-31 14:34:45 12654

原创 深入理解分布式技术 - TCC 事务模型及实战

文章目录Question :复杂业务开发中, 如何保证数据的最终一致性What's TCC ?TCC 流程Try阶段Confirm 或 Cancel 阶段优缺点TCC应用场景业务逻辑拆解业务系统改造Try 操作Confirm 操作Cancel 操作执行业务操作TCC VS 2PC 两阶段提交第一阶段第二阶段与 2PC/XA 两阶段提交的区别TCC 分布式服务组件Question :复杂业务开发中, 如何保证数据的最终一致性在分布式系统设计中,随着微服务的流行,通常一个业务操作被拆分为多个子任务

2021-01-26 23:38:52 11581

原创 深入理解分布式技术 - 两阶段的应用 MySQL XA 规范

文章目录概述一致性日志Q:MySQL突发宕机,未提交的事务怎么办?分类重做日志(redo log)回滚日志(undo log)二进制日志(binlog)概述MySQL 为我们提供了分布式事务解决方案 。binlog 的同步,其实是 MySQL XA 规范的一个应用,那么 XA 规范是如何定义的,具体又是如何应用的呢?一致性日志Q:MySQL突发宕机,未提交的事务怎么办?如果 MySQL 数据库突然宕机,未提交的事务怎么办?依靠日志,因为在执行一个操作之前,数据库会首先把这个操作的内容

2021-01-26 12:38:52 11435

原创 深入理解分布式技术 - 彻底搞懂两阶段提交协议和三阶段提交协议

文章目录问题协调者统一调度二阶段提交协议问题在分布式系统中,各个节点之间在物理上相互独立,通过网络进行沟通和协调。在关系型数据库中,由于存在事务机制,可以保证每个独立节点上的数据操作满足 ACID。但是,相互独立的节点之间无法准确的知道其他节点中的事务执行情况,所以在分布式的场景下,如果不添加额外的机制,多个节点之间理论上无法达到一致的状态。在分布式事务中,两阶段和三阶段提交是经典的一致性算法,那么两阶段和三阶段提交的具体流程是怎样的,三阶段提交又是如何改进的呢?协调者统一调度在分布式事务

2021-01-25 22:44:59 11660

原创 Netty - I/O模型之NIO

文章目录Non Blocking I/O 同步非阻塞模型Non Blocking I/O 同步非阻塞模型同步非阻塞,服务器实现模式为一个线程可以处理多个请求(连接),客户端发送的连接请求都会注册到多路复用器selector上,多路复用器轮询到连接有IO请求就进行处理。JDK1.4开始引入...

2021-01-16 23:32:24 11329 1

原创 Netty - I/O模型之BIO

文章目录I/O模型的定义BIOI/O模型的定义什么是I/O模型呢? 简单来说就是说用什么样的通道进行数据的发送和接收。在Java中,共支持3种网络编程IO模式:BIO,NIO,AIOBIO

2021-01-16 19:17:38 11305 2

原创 深入理解分布式技术 - 漫谈分布式事务及解决方案

文章目录什么是分布式事务数据库事务隔离级别Read uncommitted 读未提交Read committed 读已提交Repeatable read 可重复读Serializable 序列化分布式事务产生的原因什么是分布式事务分布式事务关注的是分布式场景下如何处理事务,是指事务的参与者、支持事务操作的服务器、存储等资源分别位于分布式系统的不同节点之上。简单来说,分布式事务就是一个业务操作,是由多个细分操作完成的,而这些细分操作又分布在不同的服务器上;事务,就是这些操作要么全部成功执行,要么全部不

2021-01-10 12:26:12 11694 1

原创 深入理解分布式技术 - ZooKeeper数据一致性解读

文章目录概述ZooKeeper 是如何实现数据一致性的Zab 一致性协议Zab 协议的两部分Zab 协议中的 ZxidZab 流程分析消息广播崩溃恢复数据同步Zab 与 Paxos 算法的联系与区别概述在分布式场景中,ZooKeeper 的应用非常广泛,比如数据发布和订阅、命名服务、配置中心、注册中心、分布式锁等。ZooKeeper 提供了一个类似文件系统的数据模型,和基于 Watcher 机制的分布式事件通知,这些特性都依赖 ZooKeeper 的高容错数据一致性协议。ZooKeeper 是如

2021-01-09 00:41:29 11403

原创 Apache Kafka-使用Kafak Tool 查看Kafka中的数据

文章目录Pre服务器环境OPAdd Cluster修改设置使用Pre如果你该配置,监控偏多 ,推荐使用 雅虎开源的 Kafka Manager , 现在叫 CMAKhttps://github.com/yahoo/CMAK如果你就是单纯的查看下Kafka持久化的数据,那推荐使用Kafak Toolhttps://www.kafkatool.com/服务器环境kafka版本ZK版本OP下载的是windows版本的 Kafka ToolAdd Cluster连接以后

2021-01-07 00:33:54 13181 2

原创 深入理解分布式技术 - Paxos 算法解读

文章目录概Quorum 机制Quorum 定义Quorum 的应用Paxos 的节点角色Proposer 提案者Acceptor 批准者Learner学习者Proposer 与 Acceptor 之间的交互Paxos 选举过程Paxos 常见的问题概Paxos 算法在分布式领域具有非常重要的地位, 因算法复杂而著名,不过 Paxos 算法是学习分布式系统必需的一个知识点 。Quorum 机制在学习 Paxos 算法之前,我们先来看分布式系统中的 Quorum 选举算法。在各种一致性算法中都可以看

2021-01-04 00:05:38 11624 1

原创 深入理解分布式技术 - BASE 理论

文章目录PreBase 理论概述Pre深入理解分布式技术 - 理论基石 CAP .CAP ,放弃强一致性(这里说的一致性是强一致性),追求分区容错性和可用性,这是很多分布式系统设计时的选择。在工程实践中,基于 CAP 定理逐步演化,提出了 Base 理论。Base 理论概述基本可用(Basically Available)软状态(Soft State)最终一致性(Eventually Consistent)Base 理论的核心思想是最终一致性,即使无法做到强一致性(Stron

2021-01-03 16:57:40 11369

原创 深入理解分布式技术 - 理论基石 CAP

文章目录概要CAPWaht's CAP概要CAP今儿主要介绍分布式系统中最基础的 CAP 理论CAP有啥子用? 废话就是CAP 理论可以帮助架构师对系统设计中目标进行取舍,合理地规划系统拆分的维度。Waht’s CAP一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)这三项中的两项。一致性指“所有节点同时看到相同的数据”,即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全

2021-01-01 00:28:59 11309

原创 Keepalived - Keepalived 实现 tomcat双机热备(抢占式)

文章目录Pre环境信息原理keepalived 安装137 安装 keepalived138 安装 keepalived配置keepalived的配置文件/etc/keepalived/keepalived.conf关键参数解读137138检测脚本日志Pre双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。环境信息节点软件IP节点Akeepalived + tomcat192.168.126.137节点Bkeepalived + tomcat19

2020-12-30 01:18:04 12455

原创 Apache ZooKeeper -从初始化到对外提供服务的过程解析( 集群模式 )

文章目录流程图Pre什么是集群模式?ZooKeeper 集群模式的特点底层实现原理程序启动QuorumPeer 类Leader 服务器启动过程Follow 服务器启动过程小结流程图PreApache ZooKeeper -从初始化到对外提供服务的过程解析( 单机模式 )我们知道了 ZooKeeper 在单机模式下从启动运行到对外提供服务的整个过程。在日常工作中,无论是出于性能上的优势还是可靠性的考虑,单机模式都无法满足要求。因此,ZooKeeper 也采用集群的方式运行。我们就来学习一下 Zoo

2020-12-26 22:27:59 11393

原创 Apache ZooKeeper -从初始化到对外提供服务的过程解析( 单机模式 )

文章目录流程图目的启动前的准备工作解析配置文件创建文件清理器服务初始化ServerStats创建FileTxnSnapLogServerCnxnFactory初始化请求处理链小结流程图目的通过对单机版的 ZooKeeper 中的启动与服务的初始化过程进行分析,来了解 ZooKeeper 服务端相关的处理知识。现在开始深入到服务器端看一看 ZooKeeper 是如何从初始化到对外提供服务的。启动前的准备工作在 ZooKeeper 服务的初始化之前,首先要对配置文件等信息进行解析和载入。也就是在

2020-12-26 21:57:25 11356

原创 Apache ZooKeeper - ZK的数据和文件

文章目录目标内存数据事务日志数据快照小结目标本篇博文,我们主要聚焦在ZooKeeper 程序运行期间,都会处理哪些数据,以及他们的存储格式和存储位置。ZooKeeper 服务提供了创建节点、添加 Watcher 监控机制、集群服务等丰富的功能。这些功能服务的实现,离不开底层数据的支持。从数据存储地点角度讲,ZooKeeper 服务产生的数据可以分为内存数据和磁盘数据。而从数据的种类和作用上来说,又可以分为事务日志数据和数据快照数据。内存数据ZooKeeper 的数据模型可以看作一棵树形结

2020-12-25 19:15:46 11638

原创 Apache ZooKeeper - 集群中 Observer 的作用以及 与 Follow 的区别

文章目录PreObserver 介绍源码解析Pre在 ZooKeeper 集群服务运行的过程中,Follow 服务器主要负责处理来自客户端的非事务性请求,其中大部分是处理客户端发起的查询会话等请求。而在 ZooKeeper 集群中,Leader 服务器失效时,会在 Follow 集群服务器之间发起投票,最终选举出一个 Follow 服务器作为新的 Leader 服务器。除了 Leader 和 Follow 服务器,ZooKeeper 集群中还有一个 Observer 服务器。在 ZooKeeper

2020-12-25 00:07:39 14938

原创 Apache ZooKeeper - 集群中 Follow 的作用_非事务请求的处理与 Leader 的选举分析

文章目录Pre非事务性请求处理过程源码分析选举过程在这里插入图片描述Leader 失效发现Leader 重新选举Follow 角色变更集群同步数据源码解析小结Pre在 ZooKeeper 集群中,Leader 服务器主要负责处理来自客户端的事务性会话请求,并在处理完事务性会话请求后,管理和协调 ZooKeeper 集群中 Follow 和 Observer 等角色服务器的数据同步。因此,在 ZooKeeper 集群中,Leader 服务器是最为核心的服务器,一个 ZooKeeper 服务在集群模式下

2020-12-24 23:57:59 11560

Scalable IO in Java

NIO - Scalable IO in Java

2023-11-10

腾讯万亿级 Elasticsearch 架构实践

腾讯万亿级 Elasticsearch 架构实践

2023-07-24

实时分析引擎&实时分析引擎

实时分析引擎

2023-07-24

X86-NFS rpm包

gssproxy-0.7.0-21.el7.x86_64.rpm keyutils- libbasicobjects-0 libcollection-0.6 libevent-2.0.21-4 libini_config libnfsidmap libpath_utils-0.2 libref_array-0.1. libtirpc-0.2.4-0. libverto-libeventm nfs-utils-1.3.0-0m quota-4.01-14.ns7 quota-nls-4.01-14 rpcbind tcp_wrappers

2020-11-24

中标龙芯-MIPS- NFS rpm包

gssproxy-0.7.0-4.ns7_4.mips64 keyutils-1.5.8-3. libbasicobjects-0 libcollection-0.6 libevent-2.0.21-4 libini_config-1.3 libnfsidmap-0.25- libpath_utils-0.2 libref_array-0.1. libtirpc-0.2.4-0. libverto-libeventm nfs-utils-1.3.0-0m quota-4.01-14.ns7 quota-nls-4.01-14 rpcbind-0.2.0-42. tcp_wrappers-7.6

2020-11-24

mybatisSource.zip

MyBatis源码功能演示环境 ,演示MyBatis的Executor 、StatementHandler 、 SQL映射、对象转换 等核心功能

2020-06-14

apache-tomcat-8.5.50-src.zip

Tomcat启动流程分析 组件的生命周期管理 用Lifecycle管理启动、停止、关闭 Lifecycle接口预览 几个核心方法 Server中的init方法示例 为啥StandardServer没有init方法 LifecycleBase中的init与initInternal方法 为什么这么设计? 分析Tomcat请求过程 链接器(Connector)与容器(Container) 解耦 Connector设计 监听服务端口,读取来自客户端的请求 将请求数据按照指定协议进行解析 根据请求地址匹配正确的容器进行处理 将响应返回客户端 Container设计 Servlet容器的实现。

2020-06-02

「Tomcat源码剖析」.pdf

Tomcat源码剖析 : 整体架构 层层分析 源码解析 架构分析 (Http服务器功能:Socket通信(TCP/IP)、解析Http报文 Servlet容器功能:有很多Servlet(自带系统级Servlet+自定义Servlet),Servlet处理具体的业务逻辑)

2020-06-01

Jest-5.3.4.zip

Jest是Elasticsearch 的Java Http Rest 客户端。 ElasticSearch已经具备应用于Elasticsearch内部的java API,但是Jest弥补了ES自有API缺少Elasticsearch Http Rest接口客户端的不足。 Jest 配置ES 集群 示例代码 及源码解读 - 核心原理 - NodeChecker源码解读 -

2020-01-19

MQ对比:Kafka VS Rocketmq VS Rabbitmq.pdf

MQ对比:Kafka VS Rocketmq VS Rabbitmq 超详细 ,值的收藏,参考资料

2019-11-04

elasticsearch-analysis-ik-6.4.1.zip

修改ik分词器源码,支持从mysql中每隔一定时间,自动加载新的词库

2019-08-20

Nginx1.14.2 + zlib + pcre + openssl

1. nginx 主软件 和 3个依赖包 zlib + pcre + openssl

2019-03-12

Spring4CachingAnnotationsExample

Spring4CachingAnnotationsExample的示例,通过Java注解的方式整合EhCache框架

2017-10-04

ORACLE_AWR报告详细分析

ORACLE_AWR报告详细分析

2016-09-28

Java反编译工具

jd-gui.exe使用C++开发,主要具有以下功能: 一、支持众多Java编译器的反编译; 二、支持对整个Jar文件进行反编译,并本源代码可直接点击进行相关代码的跳转;

2015-06-04

空空如也

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

TA关注的人

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