自定义博客皮肤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

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

原创 小工匠聊架构文章一览【不间断持续更新】

文章目录超高并发设计技术杂谈超高并发设计小工匠聊架构-超高并发秒杀系统设计 01_总体原则和架构演进小工匠聊架构-超高并发秒杀系统设计 02_数据的动静分离小工匠聊架构-超高并发秒杀系统设计 03_热点数据的处理小工匠聊架构-超高并发秒杀系统设计 04_流量削峰设计小工匠聊架构-超高并发秒杀系统设计 05_服务端性能优化小工匠聊架构-超高并发秒杀系统设计 06_数据一致性小工匠聊架构-超高并发秒杀系统设计 07_Plan B 的设计技术杂谈小工匠聊架构-写给研发工程师的全链路压测小

2020-11-12 00:01:55 78142 8

原创 加密与安全_HTTPS TLS 1.2 连接(RSA 握手)的整个过程解读

数字证书是由可信的证书颁发机构(CA)签发的,它包含服务器的公钥和身份信息。客户端通过验证服务器提供的证书,确保其通信对象是合法的服务器,而非冒充的中间人。证书的真实性由CA的签名保证,防止伪造和冒充。这个流程确保客户端和服务器之间的通信是安全的,并且数据传输过程中不会被篡改或监听。接下来,客户端和服务端的所有通信都是加密通信,并且数据通过签名确保无法篡改。从服务端拿到的 CA 证书是用户证书,需要通过证书中的签发人信息找到上级中间证书,再往上找到根证书。最后再拿到中间证书的公钥,验证用户证书的签名。

2024-09-17 23:24:35 921

原创 加密与安全_优雅存储二要素(AES-256-GCM )

二要素(姓名和身份证)是敏感数据,,很多网站仅仅依靠二要素来确认你是谁,若以明文形式存储在数据库中,存在被攻破的风险。若这些信息被不法分子获取, 后果严重。单向散列算法,如MD5、SHA-256等,虽然可以对数据生成唯一的指纹,但由于其不可逆,无法用于加密需要解密的数据。因此,它不适合用于对二要素信息(如姓名和身份证)进行加密保存。在此情况下,需要选择真正的加密算法来实现数据的加密存储与解密。对称加密算法:非对称加密算法:在需要加密保存二要素信息的场景下,加密和解密都是由同一个服务端程序执行,双方并不需要通

2024-09-17 15:09:04 1516

原创 Linux - 探秘/proc/sys/net/ipv4/ip_local_port_range

是一个虚拟文件,用于定义Linux系统上用户态应用程序可以分配的本地端口范围。这个范围内的端口通常用于创建临时的、短时间使用的网络连接,例如客户端应用程序与服务器的连接。

2024-09-13 21:15:00 1173

原创 加密与安全_优雅存储用户密码的最佳实践

在保存用户密码时,最重要的原则是不要以任何形式存储原始密码,而是存储经过哈希处理后的密码哈希值。传统的哈希算法如MD5虽然不可逆,但由于它们的速度快且容易构建彩虹表,这使得仅用它们来保存密码是不安全的。除了使用安全的哈希算法外,配套的安全防御机制(如登录失败锁定、双因素认证、图形验证码、异常行为检测等)是构建健壮的用户认证系统的关键。这些机制共同作用,能显著降低账户被攻击的风险,保护用户数据的安全。

2024-09-11 06:15:00 2135

原创 加密与安全 _ 安全原则:任何客户端的东西都不可信任

创建一个自定义注解实现log . error("接口 {} 非法调用!throw new RuntimeException("请先登录!");} }log . error("接口 {} 非法调用!throw new RuntimeException("请先登录!");} }log . error("接口 {} 非法调用!throw new RuntimeException("请先登录!");} }Slf4j;import org。

2024-09-10 21:15:00 1440

原创 Arch - 架构安全性_凭证(Credentials)

OAuth2 中的访问令牌(Access Token)是授权服务器(Authorization Server)颁发给客户端应用(Client)的凭证,用于访问资源服务器(Resource Server)上的受保护资源。: 这是一种自包含的令牌,通常包含三部分:头部(Header)、负载(Payload)、签名(Signature)。JWT 是一种基于 JSON 的轻量级数据交换格式,它可以被签名和加密,确保数据的真实性和完整性。

2024-09-09 23:06:31 1915

原创 Arch - 架构安全性_授权(Authorization)

授权是信息安全中至关重要的概念,它决定了用户能够访问的资源及其操作的范围。授权通常与认证(Authentication)、审计(Audit)、和账户管理(Account)一起组成AAAA安全框架。在复杂的安全环境中,授权的管理更加复杂,尤其是当涉及多个系统或第三方应用时。确保授权的过程可靠:对于单一系统来说,授权的过程是比较容易做到可控的,以前很多语境上提到授权,实质上讲的都是访问控制,理论上两者是应该分开的。

2024-09-08 21:05:20 1774

原创 Arch - 架构安全性_认证(Authentication)的标准和实现

WebAuthn 采用非对称加密的公钥、私钥替代传统的密码,这是非常理想的认证方案,私钥是保密的,只有验证器需要知道它,连用户本人都不需要知道,也就没有人为泄漏的可能;更值得夸赞的是 WebAuthn 为登录过程带来极大的便捷性,不仅注册和验证的用户体验十分优秀,而且彻底避免了用户在一个网站上泄漏密码,所有使用相同密码的网站都受到攻击的问题,这个优点使得用户无须再为每个网站想不同的密码。虽然认证通常首先让人联想到用户登录,但实际上,认证对象不仅可以是人,还可以是外部的代码或服务。

2024-09-08 14:02:30 2848

原创 Arch - 演进中的架构

单体架构仍然是许多小型应用和初创项目的首选,特别是在开发资源有限或系统复杂度较低的情况下。尽管单体架构在大型系统中面临挑战,但它依然是一种有效的架构风格,特别是在系统规模相对较小、技术栈统一的场景下。随着软件系统的演进,单体架构与微服务架构的选择应该根据具体需求进行权衡。无服务架构尽管有着光明的前景,但在短期内可能仍然难以全面取代其他架构形式。然而,随着云计算的不断发展,无服务架构将成为未来软件开发中的重要一环,尤其是在与微服务架构等其他架构形式融合使用时。

2024-09-08 08:15:00 1222

原创 J.U.C Review - ThreadLocal原理源码分析

在多线程或分布式系统中,数据一致性问题通常发生在多个主体(如线程或服务器节点)试图对同一份数据进行访问和修改时。这时,如果没有合理的机制来协调这些操作,就可能导致数据不一致的情况。数据一致性问题的关键在于多个主体无法就数据的状态达成一致意见。是 Java 中用于创建线程局部变量的类。通过 ThreadLocal,每个线程都可以拥有自己独立的变量副本,这些副本在多个线程之间是彼此隔离的。这样,每个线程对该变量的操作不会影响到其他线程,避免了线程间共享数据引发的一致性问题。

2024-09-07 11:45:00 1098

原创 J.U.C Review - 计划任务ScheduledThreadPoolExecutor源码分析

/ delay时长后执行任务command,该任务只执行一次// 这里的decorateTask方法仅仅返回第二个参数// 延时或者周期执行任务的主要方法,稍后统一说明return t;我们先看看里面涉及到的几个类和接口的关系:内部使用优化的DelayQueue来实现,由于使用队列来实现定时器,有出入队调整堆等操作,所以定时并不是非常非常精确。

2024-09-07 07:45:00 1044

原创 J.U.C Review - Stream并行计算原理源码分析

自Java 8推出以来,开发者可以使用Stream接口和lambda表达式实现流式计算。这种编程风格不仅简化了对集合操作的代码,还提高了代码的可读性和性能。Stream接口提供了多种集合操作方法,包括empty(判空)、filter(过滤)、max(求最大值)、findFirst和findAny(查找操作)等,使得对集合的操作更加灵活和直观。

2024-09-06 22:30:00 733

原创 J.U.C Review - Fork/Join框架

Fork/Join框架是Java中用于并行计算的一个强大工具,它实现了接口,专为能够通过递归分解成更小任务的问题而设计。这个框架的设计初衷是为了充分利用多核处理器的计算能力,从而提高应用程序的整体性能。

2024-09-06 20:45:00 770

原创 J.U.C Review - 常见的通信工具类解析

Java 的包提供了许多实用的工具类,用于简化并发编程。这些工具类帮助开发者管理和协调多线程操作,从而避免手动实现复杂的同步机制。类作用Semaphore限制同时访问某个资源的线程数量Exchanger两个线程间交换数据使一个或多个线程等待,直到其他线程完成任务后再继续执行使一组线程在某个屏障点同步,屏障可以被重复使用Phaser更加灵活的同步工具,支持多阶段任务同步,类似但更强大于CyclicBarrier。

2024-09-06 05:45:00 682

原创 J.U.C Review - CopyOnWrite容器

CopyOnWrite容器是一种实现了写时复制(Copy-On-Write,COW)机制的并发容器。在并发场景中,多个线程可能同时访问同一资源,当某个线程需要修改数据时,系统会创建该数据的副本供其修改,而其他线程仍然可以访问原始数据。这种机制的主要优点是可以在读操作频繁的情况下,避免加锁,从而提高读取性能。和。这两个容器的设计使得在“读多写少”的场景下,能够有效地提高并发性能。

2024-09-05 22:45:00 822

原创 加密与安全_ sm-crypto 国密算法sm2、sm3和sm4的Java库

国密算法sm2、sm3和sm4的java版。基于js版本进行封装,无缝兼容js版公私钥加解密。ps:理论上来说,只做纯签名是最快的。如果需要使用已发布的版本,在。

2024-09-05 20:15:00 1018

原创 J.U.C Review - 并发容器集合解析

接口扩展了Map:在指定键的值不存在时,插入给定值,避免了在多线程环境下的竞争条件。例如,在实现一个缓存时,可以使用这个方法确保在多个线程尝试同时插入相同键时,只有第一个线程的插入操作生效,其他线程则会获取已经存在的值。:只有在键值对匹配时才会移除元素,这是对方法的扩展,确保了在多线程环境下的精确控制。:只有在键与旧值匹配时才会替换值,这使得我们可以确保替换操作仅在我们预期的情况下发生。:直接替换指定键的值,但前提是该键存在。这些方法通过原子操作,确保了在多线程环境下的安全性和一致性。

2024-09-05 06:15:00 1338

原创 J.U.C Review - 并发包下常见的锁接口和类

是 Java 8 引入的一个新的锁机制,用于优化读写锁的性能。它设计的目的是为了减少读操作和写操作之间的竞争,提高并发性能。与传统的在功能和性能上有所不同。

2024-09-04 21:30:00 746

原创 J.U.C Review - 阻塞队列原理/源码分析

假设一种典型场景:有一个生产者不断地生产资源,消费者不断地消费资源,所有的资源被存储在一个共享的缓冲池中。操作通过相应的条件变量,阻塞等待与唤醒操作,使生产者和消费者线程能够有效地协作,从而实现线程间的同步与资源共享。是一个特殊的阻塞队列,队列中的元素只有在指定的延迟时间到期后,才能从队列中获取到。在这种模式中,生产者将数据添加到队列中,消费者从队列中取出数据。是一个无界队列,插入操作永远不会被阻塞,但获取操作会在没有到期元素时被阻塞。使用阻塞队列可以有效地管理任务的执行,实现线程池的负载均衡和任务调度。

2024-09-04 06:45:00 943

原创 J.U.C Review - 线程池原理/源码解析

通过管理核心线程和非核心线程的数量、维护阻塞队列中的任务、处理线程池的状态变化,从而高效地管理并发任务的执行,并实现线程的复用,避免频繁的线程创建和销毁。线程池本身有一个调度线程,这个线程就是用于管理布控整个线程池里的各种任务和事务,例如创建线程、销毁线程、任务队列管理、线程队列管理等等。状态,线程池不能接受新的任务,中断所有线程,阻塞队列中没有被执行的任务全部丢弃。当然,核心线程池中创建的线程想要拿到阻塞队列中的任务,先要判断线程池的状态,如果。在构造方法中,创建了一个线程,线程的任务就是自己。

2024-09-03 21:15:00 1035

原创 J.U.C Review - AQS核心方法解析

AQS)是一个用来构建锁和同步器的框架。抽象:抽象类,只实现一些主要逻辑,有些方法由子类实现;队列:使用先进先出(FIFO)队列存储数据;同步:实现了同步的功能。它是一个抽象类,提供了构建同步器的基础功能,子类可以通过实现一些关键的protected方法来创建自定义的同步器。SemaphoreFutureTask通过AQS,开发者能够高效地构建各种同步器,满足不同的需求。

2024-09-03 06:15:00 1475

原创 J.U.C Review - CAS的工作原理

乐观锁常通过CAS(Compare And Swap,比较并交换)机制来实现,CAS是一种硬件支持的原子操作,保证了即使在多线程环境下,也能安全地执行检查并更新操作。:悲观锁适用于“写多读少”的场景,尤其是在高并发环境下,频繁的写操作容易引发冲突,此时使用悲观锁可以有效避免冲突,保障数据的一致性。:乐观锁适用于“读多写少”的场景,这种情况下,资源访问的冲突概率较低,使用乐观锁可以减少锁带来的开销,提高系统性能。的弱版本,它的执行更轻量级,但在一些情况下可能会失败,而不一定遵循严格的内存顺序。

2024-09-02 12:45:00 1310

原创 J.U.C Review - volatile / synchronized / 锁 深入剖析

volatile关键字通过确保内存可见性和禁止指令重排序,为Java并发编程提供了一个轻量级的同步机制。它在性能和功能之间提供了一个平衡:虽然不能像锁那样保证复杂的原子性操作,但在需要简洁、高效的内存同步时,volatile是一个非常有用的工具。

2024-09-02 06:15:00 1012

原创 J.U.C Review - 白话Java内存模型

指令重排序是计算机执行程序时,为提高性能而对指令执行顺序进行调整的一种优化手段。这种优化在单线程中不会改变程序的语义,但在多线程环境中可能导致不一致的内存可见性。是JMM用于描述操作之间内存可见性关系的概念。如果操作A happens-before操作B,则A的结果对B可见,并且A的执行顺序在B之前。JMM通过happens-before规则来为多线程编程提供内存可见性的保证,确保正确同步的多线程程序执行结果不被重排序所改变。

2024-09-01 20:20:12 1011

原创 J.U.C Review - Java线程间的通信

使当前线程等待调用此方法的线程终止,最长等待时间由millis参数指定,单位为毫秒。: 除了接受一个毫秒数外,还接受一个额外的纳秒数(范围在0到999999之间),用于更细粒度的时间控制。但需注意,这个纳秒参数并不能保证绝对的精度。如果希望在子线程中修改继承的值或进行特殊处理,可以通过重写的方法来定制子线程的值。@Override// 创建一个 InheritableThreadLocal 对象,用于在不同线程之间传递字符串值@Override/*** 程序的入口点。

2024-08-30 21:45:00 4428

原创 加密与安全_前后端通过AES-CBC模式安全传输数据

当我们在前端和后端之间传输敏感信息时,安全性变得越来越重要。今天,我们将一起探索如何在前端加密密码,并在后端安全解密的过程。使用Vue.js作为前端框架,并通过Java来处理后端解密。通过动态生成密钥和初始向量,并使用安全的密钥管理服务,我们可以大幅提升系统的安全性。这不仅能防止密钥泄露带来的风险,还能通过安全的密钥交换和管理,确保前后端通信的绝对安全。在实际的生产环境中,密钥的管理和轮换至关重要,建议使用专业的KMS来简化并加强密钥管理工作。通过这些措施,可以构建一个更加安全和稳健的系统。

2024-08-30 05:15:00 2166

原创 J.U.C Review - 线程的状态及主要转化方法

测试方法的main线程只保证了a,b两个线程调用start()方法(转化为RUNNABLE状态),如果CPU执行效率高一点,还没等两个线程真正开始争夺锁,就已经打印此时两个线程的状态(RUNNABLE)了。在线程中断机制里,当其他线程通知需要被中断的线程后,线程中断的状态被设置为true,但是具体被要求中断的线程要怎么处理,完全由被中断线程自己而定,可以在合适的实际处理中断请求,也可以完全不处理继续执行下去。就在小王等得有点不耐烦的时候,他接到了老板的电话,要求他先不要吃饭,等老板来食堂一起吃。

2024-08-28 06:11:20 908

原创 J.U.C Review - 基本概念:进程、线程、线程组、优先级

在Java中,我们可以通过继承Thread类或实现Runnable接口来创建线程。虽然Thread类使用起来简单,但Runnable接口更加灵活,更符合面向对象设计原则。当需要线程有返回值时,可以使用Callable接口,而Future接口和FutureTask类提供了获取异步任务结果的机制。

2024-08-27 23:00:56 991

原创 Java Review - SPI 原理、实现与最佳实践

SPI(Service Provider Interface)是Java的一种机制,用于实现服务的动态发现和加载。SPI允许开发者在不修改应用程序代码的情况下,通过配置文件动态地为接口添加不同的实现。

2024-08-26 20:15:00 1171

原创 Simple RPC - 07 从零开始设计一个服务端(下)_RPC服务的实现

这种通过“请求中的类型”,把请求分发到对应的处理类或者处理方法的设计,在服务端处理请求的场景中,这是一个很常用的方法。我们这里使用的也是同样的设计,不同的是,我们使用了一个命令注册机制,让这个路由分发的过程省略了大量的 if-else 或者是 switch 代码。把服务的实现类注册到 RPC 框架中,这个逻辑的实现很简单,我们只要使用一个合适的数据结构,记录下所有注册的实例就可以了,后面在处理客户端请求的时候,会用到这个数据结构来查找服务实例。类,根据服务名分发到具体的服务实现类。这个类的唯一的一个实例。

2024-08-24 18:38:35 1262

原创 加密与安全_解密AES加密中的IV和Seed

在AES加密中,**IV(Initialization Vector,初始化向量)和Seed(种子)**是两个不同的概念,尽管它们都涉及到随机性和加密安全性,但用途和作用有所不同。

2024-08-21 20:45:00 1090

原创 加密与安全_双向RSA+AES加密及Code实现

使用RSA来安全地交换AES密钥。AES用来加密实际的数据,确保数据传输的安全性和效率请注意保护好自己的私钥,不可泄露通过这种双向加密的方式,客户端和服务端能够安全地互相传递敏感信息,同时确保即使通信内容被截获,也无法被解读。

2024-08-20 20:45:00 1714

原创 Simple RPC - 06 从零开始设计一个服务端(上)_注册中心的实现

注册中心和RPC服务。注册中心:负责管理服务元数据,并提供服务发现的功能。RPC服务:负责处理客户端发来的RPC请求,并调用相应的业务服务。简单来说:注册中心的作用是帮助客户端来寻址,找到对应 RPC 服务的物理地址;RPC 服务用于接收客户端桩的请求,调用业务服务的方法,并返回结果。

2024-08-17 23:45:43 1262

原创 Simple RPC - 05 从零开始设计一个客户端(下)_ 依赖倒置和SPI

接Simple RPC - 04 从零开始设计一个客户端(上),我们继续分析 依赖倒置和SPI是如何实现的。接口定义了创建桩的方法,而具体的实现类实现了该接口。通过依赖倒置原则(DIP)和SPI机制,我们有效地解耦了调用方与实现类。在这个RPC框架中,接口及其实现类之间的依赖关系被逆转,调用方只依赖接口,而不直接依赖具体实现。SPI机制进一步解耦了调用方与实现类的实例化,使得在运行时可以动态加载实现类,这为框架的扩展性和灵活性提供了强有力的支持。通过这种设计,框架可以很容易地替换。

2024-08-17 15:27:05 1318

原创 Simple RPC - 04 从零开始设计一个客户端(上)

生成源代码:根据给定的接口定义,生成“桩”类的 Java 源代码。这个类将实现指定接口,并包含将方法调用转化为 RPC 请求的逻辑。动态编译:将生成的源代码编译成字节码(.class 文件),这个过程可以在运行时完成。加载类:将编译生成的字节码加载到 JVM 中,使得生成的类可以在当前应用中使用。

2024-08-17 11:00:52 1094

原创 Simple RPC - 03 借助Netty实现异步网络通信

首先定义了对外提供服务的接口。这样,服务的使用者只需要依赖这个接口,而不需要关心其具体实现。这种设计的好处在于,它有效地解耦了接口的使用者和实现者,使我们能够安全地替换接口的实现。通过将接口定义得尽量通用,接口就可以独立于具体的使用场景,从而实现高度的复用性。例如,RPC框架中的网络传输和序列化代码,不仅能在这个框架中使用,甚至可以直接应用到其他系统中,而无需进行修改。在协议设计方面,我们为每个命令设计了一个固定的头部信息。

2024-08-14 22:49:44 1382

原创 LInux - 一文了解 ssh端口敲门knock

是一种网络安全措施,用于防止未经授权的访问。通过端口敲门,可以动态地在防火墙上打开指定端口(如SSH端口),仅允许符合特定敲门序列的用户访问。此技术通常用于隐藏重要服务(例如SSH),以防止暴力破解或其他未经授权的攻击。在此配置中,当用户按顺序敲击7000、8000、9000端口时,防火墙会打开22端口(SSH端口);反向敲击(9000、8000、7000)则会关闭该端口。工具来实现端口敲门。以Linux系统为例,可以使用。

2024-08-12 19:30:00 1102

原创 Spring Boot - 开启log-request-details详细记录调测Controller接口

在Spring Boot项目中,调试Controller接口的请求和响应信息可以极大地帮助开发人员排查问题并确保应用程序的安全性和性能。

2024-08-10 06:45:00 985

原创 Spring Boot - 通过ServletRequestHandledEvent事件实现接口请求的性能监控

在Spring框架中,监控接口请求的性能可以通过事件实现。这种方法简单有效,能够帮助开发者实时跟踪和分析请求的性能。概述:自定义拦截器可以用来在请求处理的不同阶段(如请求前、请求后、请求完成后)添加额外的逻辑。实现步骤实现接口,覆盖其中的方法,如preHandlepostHandle、和。在这些方法中记录请求开始时间、结束时间,计算处理时间。将拦截器注册到Spring MVC配置中。示例代码@Override@Override。

2024-08-09 22:03:59 1276

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关注的人

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