后端开发共38篇
简化ETL工作,编写一个Canal胶水层-IT面试星球

简化ETL工作,编写一个Canal胶水层

前提 ❝ 这是一篇憋了很久的文章,一直想写,却又一直忘记了写。整篇文章可能会有点流水账,相对详细地介绍怎么写一个小型的”框架”。这个精悍的胶水层已经在生产环境服役超过半年,这里尝试把...
mianba的头像-IT面试星球mianba1年前
06210
Mybatis源码学习三二级缓存-IT面试星球

Mybatis源码学习三二级缓存

数据查询的流程   二级缓存架构图 二级缓存流程图 二级缓存中的重要概念:事务缓存管理器  事务缓存管理器就是一个Map,以二级缓存为key,TransactionalCache为value。 TransactionalCache即...
mianba的头像-IT面试星球mianba1年前
07313
使用以语言为中心的容器基础镜像  distroless-IT面试星球

使用以语言为中心的容器基础镜像 distroless

关于容器技术,我之前分享不少文章和技巧,包括如何优化镜像,如何更优雅的进行构建封装,以及大量的容器应用实践、使用案例以及维护方式。 本篇文章将介绍一个在许多场景下更有效的方案,来让...
mianba的头像-IT面试星球mianba1年前
0558
RocketMQ系列-消息刷盘详解-IT面试星球

RocketMQ系列-消息刷盘详解

在 RocketMQ架构设计之消息 这篇文章中, 我们学习了 消息发送到消费 的整体流程。这篇文章,我们一起来看看 MappedFile 的实现细节. 引言 我们都知道的是 RocketMQ消息都是持久化到磁盘上的,消...
mianba的头像-IT面试星球mianba1年前
04610
【Netty】RecvByteBufAllocator源码分析-IT面试星球

【Netty】RecvByteBufAllocator源码分析

前言 前面写过《Netty 服务端启动全流程源码分析》,BossGroup 获取到客户端连接 SocketChannel 后会将其注册到 WorkerGroup,由 WorkerGroup 来驱动数据 IO 读写。WorkerGroup 的 EventLoop 监...
Mybatis源码学习二一级缓存-IT面试星球

Mybatis源码学习二一级缓存

一级缓存流程 一级缓存有效的因素 一级缓存有效测试 public class User { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { ...
mianba的头像-IT面试星球mianba1年前
01055
Centos8.3部署kubernetes:v1.12.3-IT面试星球

Centos8.3部署kubernetes:v1.12.3

Centos8.3部署kubernetes:v1.12.3 概述^3 Kubernetes 是什么? Kubernetes 是一个可移植的,可扩展的开源平台,用于管理容器化的工作负载和服务,方便了声明式配置和自动化。它拥有一个庞大且快...
mianba的头像-IT面试星球mianba1年前
0859
Tang+luks实现磁盘自动加解密-IT面试星球

Tang+luks实现磁盘自动加解密

1、描述 Tang 是一个将数据绑定到网络状态的服务器。当系统绑定到某个安全网络时,它会使包含数据的系统变得可用。Tang 是无状态的,不需要 TLS 或身份验证。与基于 escrow 的解决方案不同,服...
mianba的头像-IT面试星球mianba1年前
06813
Netty是如何检测资源泄漏的?-IT面试星球

Netty是如何检测资源泄漏的?

为了减轻 GC 的压力、以及避免频繁向 OS 申请和释放内存,Netty 基于 JeMalloc 思想自己实现了一套内存管理方案。不管是堆内存还是直接内存,都可以交给 Netty 来统一管理,这带来了两个好处,...
mianba的头像-IT面试星球mianba1年前
05910
Mybatis源码学习一Executor-IT面试星球

Mybatis源码学习一Executor

Executor架构 Caching Executor的作用就是实现二级缓存,使用的是装饰者模式。 装饰者模式:在不改变原有类继承结构的情况下,新建一个对象来扩展原有功能。 Executor具体实现 maven依赖 org.my...
mianba的头像-IT面试星球mianba1年前
08611