自定义博客皮肤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)
  • 收藏
  • 关注

原创 MQ - 闲聊MQ一二事儿 (Kafka、RocketMQ 、Pulsar )

ookeeper 是 cp 强一致架构的一种,其内部使用 zab 算法,进行信息同步和容灾,在信息量较小的情况下,性能较好,当信息交互变多,因为同步带来的性能损耗加大,性能和吞吐量降低。kafka 的整体性能收到了 topic 数量的限制,这和底层的存储有密不可分的关系,我们上面讲过,当消息来的时候,底层数据使用追加写入的方式,顺序写盘,使得整体的写性能大大提高,但这并不能代表所有情况,当我们 topic 数量从几个变成上千个的时候,情况就有所不同了。所以,针对不同场景选择合适的产品是非常关键的。

2023-07-24 23:29:14 9980

原创 大厂案例 - 实时分析引擎

网络安全态势越来越复杂,传统的基于单点的防护和攻击检测系统在应对现代网络攻击方面有着很大的局限性。基于大数据平台,通过流式实时分析技术可以对全局网络空间进行实时的分析和异常检测,解决单点很难发现和处理的安全问题。相比与互联网公司常见的大数据实时分析场景,面向企业用户的网络安全分析场景存在很多特殊需求和挑战,本次分享将介绍网络安全领域对实时分析系统的需求,并从这些需求出发,讲解如何设计适合网络安全领域的实时分析引擎,希望为业界解决类似问题提供参考和借鉴。

2023-07-24 21:45:00 8781

原创 Kafka - Primie Number of Partitions Issue & Consumer Group Rebalance

在 Kafka 中,Consumer Group Rebalance 是指在 Consumer Group 中添加或删除消费者时,重新分配 Topic 的分区的过程。Consumer Group Rebalance 由 Consumer Group Coordinator(负责管理 Consumer Group State 的 Broker)触发,并使用 Consumer Group Assignment Strategy(确定如何将分区分配给 Consumer Group 中的消费者)重新平衡分区分配。

2023-07-20 10:57:06 9125

原创 Kafka - AR 、ISR、OSR,以及HW和LEO之间的关系

如果ISR太小,那么当主副本故障时,选举新的主副本可能会导致数据丢失或延迟;如果ISR太大,那么同步数据的成本会变得很高,影响分区的性能。当消费者从分区中读取消息时,它会记录当前已经读取到的偏移量,并将该偏移量作为下一次读取的起始位置。如果消费者读取到的偏移量小于HW,那么它只能读取到已经被所有副本复制的消息;如果消费者读取到的偏移量大于HW,那么它可能会读取到未被所有副本复制的消息。OSR的存在不会影响分区的可用性和性能,但是如果OSR过大,那么可能会占用过多的磁盘空间和网络带宽。

2023-07-19 19:45:00 10101

原创 Kafka - 分区中各种偏移量的说明

LEO是Log End Offset的缩写,它标识当前日志文件中下一条待写入消息的offset,上图中offset为9的位置即为当前日志文件的LEO,LEO的大小相当于当前日志分区中最后一条消息的offset值加1。如上图,它代表一个日志文件,这个日志文件中有 9 条消息,第一条消息的 offset(LogStartOffset)为0,最后一条消息的offset为8,offset为9的消息用虚线框表示,代表下一条待写入的消息。如果消费者读取到的偏移量大于HW,那么它可能会读取到未被所有副本复制的消息。

2023-07-18 22:15:00 9552

原创 Kakfa - 多副本架构

提高数据可靠性:多副本架构可以将同一个主题的数据同时存储在多个 Broker 上,当某个 Broker 发生故障时,系统可以从其他 Broker 上获取数据,从而保证数据的可靠性。为了避免这种情况,需要对数据进行复制和同步。提高系统可用性:多副本架构可以保证系统在某个 Broker 发生故障时仍然可以继续提供服务,从而提高系统的可用性。会增加存储成本:多副本架构需要将同一个主题的数据同时存储在多个 Broker 上,会增加存储成本。会增加系统复杂度:多副本架构需要对数据进行复制和同步,会增加系统的复杂度。

2023-07-18 20:15:00 11048

原创 Arch - 多线程设计架构模式

多线程设计架构模式是一种通过合理地使用线程来提高系统性能和响应能力的设计模式。以下是一些常见的多线程设计架构模式:线程池模式:通过预先创建一组线程,将任务提交到线程池中执行,避免了线程的频繁创建和销毁,提高了系统的性能和稳定性。生产者-消费者模式:通过将任务分为生产者和消费者两个角色,生产者负责生成任务并将其放入队列中,而消费者则从队列中获取任务并执行。这种模式可以提高系统的并发性能和吞吐量。Future模式:通过使用Future对象来表示异步计算的结果,可以让调用方在不阻塞的情况下获取到计算结果。

2023-07-17 20:15:00 9288

原创 Arch - 通用 Active Objects框架设计

构造GenericActiveMessage必须使用Builder方式进行build,其中包含了调用某个方法必需的入参(objects),代表该方法的java.lang.reflect.Method实例,将要执行的ActiveService实例(service),以及如果该接口方法有返回值,需要返回的Future实例(future)方法会进入阻塞,10秒钟以后订单的详细信息将会返回,同样,实例,如果该方法是Future的返回类型,则还需要定义。的实现,所有的操作都会被支持动态代理的工厂类。

2023-07-15 16:47:50 9479

原创 Arch - 标准 Active Objects框架设计

Active Objects模式是一种设计模式,用于实现并发和异步处理。在该模式中,每个对象都有自己的线程,可以独立地执行其操作,从而提高系统的性能和响应能力。此模式常用于高并发的系统中。通过使用Active Objects模式,可以将并发性和异步性与面向对象编程的优点相结合,从而实现更高效和可维护的代码。

2023-07-13 20:00:00 9596

原创 EDA - 实战 Event-Driven Architecture

User Online Event:当用户上线时来到聊天室的Event。User Offline Event:当用户下线时退出聊天室的Event。User Chat Event:用户在聊天室中发送聊天信息的Event。/*** @author 小工匠} }/*** @author 小工匠} }/*** @author 小工匠} }/*** @author 小工匠} }/*** @author 小工匠} }/**

2023-07-13 06:47:59 9776

原创 OpenSource - Spring Startup Ananlyzer

如果需要自定义观测能力,需要引入spring-profiler-starter的pom作为扩展项目的父pom,然后就可以使用项目对外暴露的接口进行扩展。更多的细节可以参考spring-profiler-extension的实现

2023-07-12 19:56:12 10893

原创 缓存 - Spring Boot 整合 Caffeine 不完全指北

创建缓存常量类,把公共的常量提取一层,复用,这里也可以通过配置文件加载这些数据,例如@ConfigurationProperties和@Value。方法时,首先会检查缓存中是否存在与给定参数对应的数据。如果不存在,则会执行方法体内的业务逻辑,并将结果放入缓存。确保选择与您的Spring Boot版本兼容的Caffeine版本。这就是在Spring Boot中整合Caffeine缓存的基本步骤。的Caffeine缓存,最大容量为100,访问后在600秒内过期。在需要使用缓存的地方,使用。

2023-07-11 20:00:56 10731

原创 缓存 - Caffeine 不完全指北

Caffeine是一个用于Java应用程序的高性能缓存框架。它提供了一个强大且易于使用的缓存库,可以在应用程序中使用,以提高数据访问的速度和效率。下面是一些Caffeine缓存框架的主要特点:高性能:Caffeine的设计目标之一是提供卓越的性能。它通过使用高效的数据结构和优化的算法来实现快速的缓存访问。与其他一些常见的缓存框架相比,Caffeine在缓存访问的速度和响应时间上表现出色。内存管理:Caffeine提供了灵活的内存管理选项。它支持基于大小、基于数量和基于权重的缓存大小限制。

2023-07-11 19:25:07 11174

原创 EDA - 如何设计一个支持【异步/同步】模式的 Event-Driven Architecture 架构

EDA(Event-Driven Architecture)是一种实现组件之间松耦合、易扩展的架构方式。一个最简单的EDA设计需要包含如下几个组件:Events:需要被处理的数据。Event Handlers:处理Events的方式方法。Event Loop:维护Events和Event Handlers之间的交互流程。举个例子 :Event A将被Handler A处理,而Event B将被Handler B处理,这一切的分配都是由Event Loop所控制的。

2023-07-09 23:10:46 10651

原创 并发编程 - 利用Event Bus模式实现目录文件变化捕捉

JDK自1.7版本后提供了WatchService类,该类可以基于事件通知的方式监控文件或者目录的任何变化,文件的改变相当于每一个事件(Event)的发生,针对不同的时间执行不同的动作,我们将结合NIO2.0中提供的WatchService和上一篇博文实现的Event Bus实现文件目录的监控的功能。在子目录下不断地创建、删除、修改文件,这些事件都将被收集并且提交给EventBus。

2023-07-09 18:30:38 10358

原创 并发编程 - Event Bus 设计模式

注册对象给Event Bus的时候需要指定接收消息时的回调方法,采用注解的方式进行Event回调/*** @author 小工匠/*** @author 小工匠/*** @author 小工匠/*** @author 小工匠/*** @author 小工匠/*** @author 小工匠/*** @author 小工匠/*** @author 小工匠/**

2023-07-09 13:46:16 10529

原创 每日一博 - 探索代码世界的地图 code iris

groovy and java code analysisexperimental kotlin code analysisvisualize modules and their dependenciesvisualize classes and their dependenciesvisualize packages and their classesfiltering of classes and packageshighlighting of classes and packages

2023-07-08 10:16:01 10387

原创 并发编程 - 通过 Disruptor 来实现无锁无阻塞的并发编程

Disruptor是一种高性能的并发编程框架,它由LMAX Exchange公司开发,并于2011年开源。Disruptor旨在解决传统多线程编程中的性能瓶颈和并发问题,特别适用于需要高度并发处理的场景。Disruptor采用了一种称为"无锁编程"的机制,通过使用环形缓冲区(Ring Buffer)和事件驱动的方式实现高效的消息传递和处理。它的核心思想是将消息(事件)在生产者和消费者之间进行无锁的、高效的交换,以减少线程间的竞争和上下文切换。

2023-07-04 18:59:58 10543

原创 Nacos架构与原理 - Nacos-Sync

NacosSync 是⼀个支持多种注册中心的同步组件,基于 Spring boot 开发框架,数据层采用Spring Data JPA ,遵循了标准的 JPA 访问规范,支持多种数据源存储,默认使用Hibernate实现,更加方便的支持表的自动创建更新。使用了高效的事件异步驱动模型, 支持多种自定义事件,使得同步任务处理的延时控制在 3s, 8C 16G 的单机能够支持 6K 的同步任务。

2023-07-01 12:23:45 11803

原创 Nacos架构与原理 -服务网格生态

要深入理解服务网格的概念,明确服务网格要解决的问题,以及认识服务网格带来的业务价值,需要从应用架构的演进发展从头开始讲起。Istio 是⼀个由 Google,IBM 和 Lyft 团队合作开发的开源项目,它用来连接、保护、控制和观察集群中部署的服务。目前比较火热的云原生技术 ServiceMesh ,其中⼀套比较流行的方案就是采用实现的。

2023-07-01 08:24:29 11663

原创 插件 - 插件机制触手可及

这种思路也需要在具体应用中权衡利弊。但总的来说,这是一种较为灵活的插件扩展方案,可以在一定场景下替代serviceloader等机制。运用得当,可以大大增强系统的扩展性。这种思路被许多主流开源框架采用,如Dubbo就广泛使用SPI机制,通过加载指定目录下的jar包和反射来实现不同版本的兼容和扩展。总体来说,这是一种非常实用和棒的设计思想。中是不是有依赖, 我不想依赖 ,肿么办?

2023-06-22 19:45:32 11476

原创 插件 - 一份配置,离插件机制只有一步之遥

在图中,动态加载的实现类包括B插件的实现类(BImpl)、C插件的实现类(CImpl)和D插件的实现类(DImpl)。上述流程图中,A应用定义了一个通用接口(I),而B、C、D等插件应用分别实现了该接口。假设A应用是一个电商平台,而B、C、D等插件应用分别是支付插件、推荐插件和物流插件。将支付、推荐和物流等功能拆分为独立的插件应用,不同的团队可以并行开发和维护各自的插件,提高开发效率和系统的可维护性。A应用通过直接引入B、C、D插件应用的依赖(BDep、CDep、DDep),按需加载插件应用。

2023-06-19 22:23:35 11812

原创 插件 - 通过SPI方式实现插件管理

SPI(Service Provider Interface)是Java提供的一种服务扩展机制,它允许应用程序在运行时动态加载和发现提供者(Providers),并与它们进行交互,实现了应用程序与服务提供者的解耦。这样,Servlet容器通过SPI机制加载web应用声明的Servlet、Filter和Listener等组件,使得web应用不需要在代码中直接实例化这些组件,极大地增强了web应用的灵活性。SLF4J和Log4j都是通过SPI机制加载和管理日志实现的,允许使用不同的日志库。

2023-06-19 20:15:00 12134

原创 Nacos架构与原理 - 健康检查机制

注册中心会在启动时注册⼀个全局的同步任务,用于将其当前负责的所有节点信息同步到集群中的其他节点,其他非负责的节点也会创建该客户端的信息,在非负责的节点上,连接类型的客户端,会有⼀个续约时间的概念,在收到其他节点的同步信息时,更新续约时间为当前时间,如果在集群中的其他节点在⼀段时。临时实例只会对其被负责的注册中心节点发送心跳信息,注册中心服务节点会对其负责的永久实例进行健康探测,在获取到健康状态后由当前负责的注册中心节点将健康信息同步到集群中的其他的注册中心。注意两种方式的配合使用,实现完备监控。

2023-06-12 23:15:00 14872 1

原创 Nacos架构与原理 - 注册中心服务数据模型(2.x版本)

命名空间(Namespace):Nacos 数据模型中最顶层、也是包含范围最广的概念,用于在类似环境或租户等需要强制隔离的场景中定义。Nacos 的服务也需要使用命名空间来进行隔离。分组(Group):Nacos 数据模型中次于命名空间的⼀种隔离概念,区别于命名空间的强制隔离属性,分组属于⼀个弱隔离概念,主要用于逻辑区分⼀些服务使用场景或不同应用的同名服务,最常用的情况主要是同⼀个服务的测试分组和生产分组、或者将应用名作为分组以防止不同应用提供的服务重名。服务名。

2023-06-12 21:15:00 13673

原创 Nacos架构与原理 - 注册中心的设计原理

总之,框架设计注重扩展性,但服务器端考虑稳定性,需审慎。Zookeeper 是⼀款经典的服务注册中心产品(虽然它最初的定位并不在于此),在很长⼀段时间里,它是国人在提起 RPC 服务注册中心时心里想到的唯⼀选择,这很大程度上与 Dubbo 在中国的普及程度有关。总之,Nacos通过测试展示了较高的容量和性能,同时具有较好的扩展性,这些优势有助于满足用户的容量和性能需求。Zookeeper的数据存储以树形K-V的形式比较抽象,可以存储任意语义的数据,但无法很好满足服务发现的数据模型需求。

2023-06-12 19:15:00 14042

原创 Nacos架构与原理 - 寻址机制

但是,这种默认寻址模式有⼀个缺点——运维成本较大,可以想象下,当你新增⼀个 Nacos 节点时,需要去手动修改每个 Nacos 节点下的 cluster.conf 文件,这是多么辛苦的⼀件工作,或者稍微高端⼀点,利用 ansible 等自动化部署的工具去推送 cluster.conf 文件去代替自己的手动操作,虽然说省去了较为繁琐的人工操作步骤,但是仍旧存在⼀个问题——每⼀个 Nacos 节点都存在⼀份cluster.conf 文件,如。同时,也能够自行发现不存活的节点,自动将其从集群可用节点列表中剔出。

2023-06-09 20:27:58 15485

原创 Nacos架构与原理 - 通信通道

长连接因为建立连接后,如果没有异常情况出现,连接会⼀直保持,断连后需要重新选择⼀个新的服务节点,当出现服务节点发布重启后,最终连接会出现不均衡的情况出现,“随机,轮询,权重”的策略在客户端重连切换时可以使用,“最小连接数,最快响应速度”和短连接⼀样也会出现数据延时造成堆积效应。在客户端层面要尽可能多的支持多语言,至少要支持⼀个 Java 服务端连接通道,可以使用多个主流语言的客户端进行访问,并且要考虑各种语言实现的成本,双边交互上要考虑 thin sdk,降低多语言实现成本。网络不稳定时,客户端。

2023-06-09 19:06:51 15276

原创 Nacos架构与原理 - 自研 Distro 协议 (AP分布式协议)

对于⼀个已经启动完成的 Distro 集群,在⼀次客户端发起写操作的流程中,当注册非持久化的实例的写请求打到某台 Nacos 服务器时,Distro 集群处理的流程图如下。作为⼀种有状态的中间件应用的内嵌协议,Distro 保证了各个 Nacos 节点对于海量注册请求的统⼀协调和存储。⼀旦在数据校验过程中,某台机器发现其他机器上的数据与本地数据不⼀致,则会发起⼀次全量拉取请求,将数据补齐。在全量拉取操作完成之后,Nacos 的每台机器上都维护了当前的所有注册上来的非持久化实例数据。

2023-06-09 08:00:00 24203 4

原创 Nacos架构与原理 - CAP一致性协议 ( Raft & Distro)

对于强⼀致性共识算法,当前工业生产中,最多使用的就是 Raft 协议,Raft 协议更容易让人理解,并且有很多成熟的工业算法实现,比如蚂蚁金服的 JRaft、Zookeeper 的 ZAB、Consul 的 Raft、百度的 braft、因为 Nacos 是 Java 技术栈,因此只能在 JRaft、ZAB、ApacheRatis 中选择,但是 ZAB 因为和 Zookeeper 强绑定,再加上希望可以和 Raft 算法库的支持团队沟通交流,因此选择了 JRaft,

2023-06-09 06:45:00 14824

原创 Nacos架构与原理 - 配置模型

在系统开发过程中通常会将⼀些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进行适配。配置管理⼀般包含在系统部署的过程中,由系统管理员或者运维人员完成这个步骤。配置变更是调整系统运行时的行为的有效手段之⼀。

2023-06-08 23:15:00 14125

原创 Nacos架构与原理 - 总体架构

Nacos采用流行的微服务架构,其总体架构如下:- 服务注册中心:负责服务的注册与发现。服务提供者注册服务,服务消费者从注册中心发现服务并消费。- 配置中心:用于集中管理应用的配置文件。应用可以从配置中心拉取配置并动态更新。- 服务发现:服务消费者从注册中心获取服务提供者列表,并且可以动态更新。- 配置管理:应用可以从配置中心获取配置并动态更新。- 动态服务路由:有了服务注册中心和服务发现,Nacos可以实现动态路由和配置更新。- 服务调用:消费者可以通过RestTemplate等方式调用服务提

2023-06-08 20:15:00 14551

原创 ChatGPT - 高效的提问结构

ChatGPT - 如何高效的调教ChatGPT (指令建构模型-LACES问题模型)与ChatGPT进行高效的对话,有几个提示:

2023-06-05 21:15:00 13391

原创 每日一博 - Server-Sent Events推送技术

SSE(Server-Sent Events)是一种基于HTTP的服务器推送技术,它允许服务器实时地向客户端推送数据。相比于传统的轮询或长轮询技术,SSE具有更低的延迟、更高的效率和更低的资源消耗。SSE最早由HTML5规范引入,目前已被广泛应用于各种Web应用中,如即时通讯、股票行情、新闻资讯等。SSE的工作原理非常简单,客户端通过与服务器建立一条长连接(即HTTP连接不会关闭),服务器可以在任意时刻向客户端推送数据,而客户端则通过监听这个连接上的事件来获取数据。

2023-06-05 06:51:16 13957

原创 Apache Kafka - 流式处理

Kafka被广泛认为是一种强大的消息总线,可以可靠地传递事件流,是流式处理系统的理想数据来源。流式处理系统通常是指一种处理实时数据流的计算系统,能够对数据进行实时的处理和分析,并根据需要进行相应的响应和操作。与传统的批处理系统不同,流式处理系统能够在数据到达时立即进行处理,这使得它们特别适合需要实时响应的应用程序,例如实时监控和警报、实时推荐、实时广告投放等。Kafka的设计使其成为流式处理系统的理想数据源,因为它具有高吞吐量、低延迟和可靠性,并且能够轻松地扩展以处理大量数据。

2023-06-03 23:33:26 15446 1

原创 Apache Kafka - 跨集群数据镜像 MirrorMaker

在分布式系统中,数据镜像是一项重要的功能,它可以将数据从一个集群复制到另一个集群,以保证数据的高可用性和容错性。Apache Kafka是一个流处理平台,它提供了一种跨集群数据镜像的解决方案,可以让用户轻松地将数据从一个Kafka集群复制到另一个Kafka集群。Kafka跨集群数据镜像的实现方式是通过Kafka Connect来完成的。Kafka Connect是Kafka提供的一种可扩展的数据导入和导出框架,它可以将数据从外部系统导入到Kafka集群中,也可以将Kafka集群中的数据导出到外部系统中。

2023-06-01 21:15:00 14730

原创 Apache Kafka - 构建数据管道 Kafka Connect

Kafka Connect 是一个工具,它可以帮助我们将数据从一个地方传输到另一个地方。比如说,你有一个网站,你想要将用户的数据传输到另一个地方进行分析,那么你可以使用 Kafka Connect 来完成这个任务。Kafka Connect 的使用非常简单。它有两个主要的概念:source 和 sink。Source 是从数据源读取数据的组件,sink 是将数据写入目标系统的组件。

2023-06-01 19:30:00 15364

原创 Apache Kafka - 灵活控制Kafka消费_动态开启/关闭监听实现

在实际应用中,往往需要根据业务需求动态开启/关闭Kafka消费者监听。例如,在某些时间段内,可能需要暂停对某个Topic的消费,或者在某些条件下才开启对某个Topic的消费。在Spring Boot中,要实现动态的控制或关闭消费以及动态开启或关闭监听,可以使用Spring Kafka提供的一些功能。

2023-05-31 19:20:18 16619

原创 每日一博 - 对称加密算法 vs 非对称加密算法

在信息安全领域中,加密算法是保护数据安全的重要手段。对称加密算法:使用相同的密钥进行加密和解密,如DES、AES等。非对称加密算法:使用公钥和私钥进行加密和解密,如RSA、ECC等。哈希函数:将任意长度的消息压缩成固定长度的摘要,如MD5、SHA-1、SHA-256等。数字签名算法:用于验证消息的真实性和完整性,如RSA数字签名、DSA等。密码协议:用于建立安全通信信道,如SSL/TLS、SSH等。以上是一些常见的加密算法分类,不同的加密算法适用于不同的场景和需求。

2023-05-28 20:58:47 15012

原创 Apache Kafka - 如何实现可靠的数据传递

所以,Kafka 通过分区多副本、生产者消费者重试机制、批量操作与校验、顺序写磁盘与页缓存、混合存储、高可用设计以及时间戳与消息编号等手段,实现了高吞吐、低延迟与高可靠的数据传输。这也体现了 Kafka 的设计目标与关键机制。

2023-05-28 19:52:36 14654

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

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