Grafana docker run -d --name=grafana --network host grafana/grafana-enterprise Prometheus 下载并解压 wget https://github.com/prometheus/prometheus/releases/download/v2.42.0/prometh…
前言 学习后端开发这么久,Redis 是我常用的一个中间件,以往主要是用于做缓存处理和暂存一些值。但用了这么多,却并没有深入地了解过 Redis 底层,并且平时的使用也大多都是通过 SpringData 封装的 RedisTemplate,连 Redis 本身的命令也几乎要忘掉了。因此打算写一篇总结性的博客,包括Redis的基础 + Redis底层…
前言 I/O 泛指的是 CPU 向 I/O设备(硬盘、网卡)中读取/写入数据。而本文主要介绍的是网络 I/O,也就是借助于 Socket Api ,从网卡中读取数据。 Unix网络编程中的五种IO模型 参考:聊聊Linux 五种IO模型 - 简书 (jianshu.com) 一个I/O操作通常分为两个阶段: 等待数据准备(从磁盘/网卡中读取数据到内…
前置 由于 HTTP 本身是使用明文通信的,不加密、无法验证通信方的身份、无法证明报文的完整性,因此 HTTPS 出现了。HTTPS 本质上就是 HTTP 与 SSL/TLS 的组合。 HTTPS要解决的问题: 加密:保证信息不会泄露 证明:保证信息来源于目标服务器,并且不被篡改 加密 对称加密/共享密钥加密 服务器和客户端使用相同的加密/解密密钥…
前言 我们都知道在Spring中,想要启用异步任务和定时任务非常简单,只要在配置类或者启动类上添加@EnableAsync和@EnableScheduling,然后在对应方法上添加@Async和@Schedule即可。那么@Async和@Schedule默认是在什么线程池中运行的呢?默认的线程池是什么配置?如何修改其配置?如何自定义线程池? 异步任…
基本概念 Github Actions 是 Github 推出的持续集成工具 workflow: 一个 workflow 工作流就是一个完整的过程,每个workflow 包含一组 jobs任务。job : jobs任务包含一个或多个job ,每个 job包含一系列的 steps 步骤。step : 每个 step 步骤可以执行指令或者使用一个 ac…
逻辑架构 参考:MySQL逻辑架构 - 知乎 (zhihu.com) 连接层 将MySQL服务层通过线程池和TCP连接池,与多个客户端连接。主要工作是:连接处理、授权认证、安全防护。 服务层 服务层用于处理核心服务,如标准的SQL接口、查询解析、SQL优化和统计、全局的和引擎依赖的缓存与缓冲器等等。所有的与存储引擎无关的工作,如过程、函数等,都会在…
反射介绍 概念 反射机制允许程序在执行期间借助于 Reflection Api 获取任何类的内部信息(成员变量、构造器、成员方法等),并能直接操作任意对象的内部属性和方法。 当一个类被加载之后,就在堆内存的方法区中产生了一个相应的 Class 类型的对象(一个类只有一个Class对象),这个对象包含了完整的类的结构信息,可以通过这个对象看到类的结构…
njupt-sast 内网搭建 GitLab 过程 下载并安装 GitLab 安装包 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.0.1-ce.0.el7.x86_64.rpm rpm -i gitlab-ce-14.0.1-ce.0.el7.x8…