自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 锁的分类总结

可重入就是说某个线程已经获得某个锁,可以再次获取该锁。公平指的是按照线程请求的顺序,来分配锁;非公平指的是,不完全按照请求的顺序,在一定情况下,可以插队。注意非公平也同样不提倡“插队”行为,这里的非公平,指的是“在合适的时机”插队,而不是盲目插队。...

2022-07-31 18:36:53 1928

原创 容器技术的基石:namespace和cgroups

虚拟技术基本要求就是资源隔离,简单的说就是我独占当前所有的资源。比如我在 8080 端口起 web 服务器,不用担心其他进程端口占用。Linux 自带 namespace 就能达到这个目的。Linux现有的namespace有六种:Docker通过clone()在创建新进程的同时创建namespace。介绍其中三种:可以通过三个系统调用的方式shell 也提供了一个和系统调用同名的 unshare 命令可以非常简单的创建 namespace。这样创建了一个新的 PID namespace 并在里面运行

2022-06-19 15:59:25 358

原创 索引的使用策略(一)

目录一、索引列上不能使用表达式或函数二、前缀索引三、索引列的选择性四、联合索引五、覆盖索引一、索引列上不能使用表达式或函数比如:select ... from productwhere to_days(out_date) - to_days(current_date) <= 30;该SQL用于查找30天内就过期的商品。而它违反了“索引列上不能使用表达式或函数”这条策略,这项查询就不能使用到索引。要想使用到索引,则改为:select ... from productwhere out_

2022-05-15 15:40:16 321

原创 关于数据库的网络存储

一、SAN和NASSAN(Storage Area Network)存储区域网络和NAS(Network-Attached Storage)网络附加存储是两种外部文件存储设备加载到服务器的方法。1. SANSAN设备是通过光纤连接到服务器,设备通过块接口访问,服务器可以将其当作硬盘使用。可承受大量顺序读写随机读写慢,不如RAID本地磁盘的效率2. NASNAS设备使用网络连接,通过基于文件的协议如NFS或SMB来访问。通常会有一定的网络传输延迟。二、网络存储适用的场景顺序IO可以,随

2022-03-24 14:24:56 384 2

原创 记录关于顺序IO与随机IO的几个问题

顺序IO:是指读写操作的访问地址连续。在顺序IO访问中,HDD所需的磁道搜索时间显着减少,因为读/写磁头可以以最小的移动访问下一个块。数据备份和日志记录等业务是顺序IO业务。随机IO:是指读写操作时间连续,但访问地址不连续,随机分布在磁盘的地址空间中。产生随机IO的业务有OLTP服务,SQL,即时消息服务等。如何解决随机IO造成的性能损失?Mysql 数据最终都会刷到磁盘上去,刷盘分随机IO和顺序IO,两者性能相差很大,大多情况下我们会改变一下设计使Mysql 的随机IO变为顺序IO来提高性能。..

2022-03-24 11:27:40 345

原创 MySQL学习笔记--常用存储引擎InnoDB与MyISAM总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、MyISAM特性1. 并发性与锁级别2. 表损坏修复3. MyISAM表支持的索引4. MyISAM表支持压缩限制1. 版本 < MySQL5.0时单表默认最大为4GMyISAM适用场景二、InnoDB系统表空间 vs 独立表空间1. 表空间文件的收缩a. 系统表空间b. 独立表空间2. 对IO的影响a. 系统表空间b. 独立表空间把系统表空间改成独立表空间InnoDB怎样实现的ACID特性1. Redo Loga. 重.

2022-03-24 11:09:45 645

原创 Docker实现进程隔离的方式

前言Docker其实并没有实现什么新的技术,而是在Linux的系统调用之上做了封装,达到了非常好的用户体验,让人们感觉好像是跑的一个虚拟机一样。Docker通过Linux的namespace机制实现进程隔离对比虚拟机技术在同一个宿主机上建立多个操作系统实现的彻底的进程隔离,这样的实现方式要跑多个操作系统,带来了非常大的资源开销。而Docker容器技术则是通过一系列的namespace实现进程隔离,这是一种内核级别隔离系统资源的方法。namespace隔离类型:UTS namespaceUTS

2022-02-07 21:26:17 2057

原创 JDK8以后废弃扩展类加载器(Extension ClassLoader)的原因

JDK8以后废弃扩展类加载器(Extension ClassLoader)的原因JDK8以后,使用平台类加载器(Platform ClassLoader)替换了原来的扩展类加载器(Extension ClassLoader)。有两个基本的原因归纳如下:在JDK8中的这个Extension ClassLoader,主要用于加载jre环境下的lib下的ext下的jar包。当想要扩展Java的功能的时候,把jar包放到这个ext文件夹下。然而这样的做法并不安全,不提倡使用。这种扩展机制被JDK9开始加入的

2022-01-28 17:17:23 540

原创 docker容器之间为什么能进行通信

文章目录

2022-01-24 17:03:29 856

原创 Zookeeper学习笔记(一)

文章目录一、简介1.2. Zookeeper的特性3. Zookeeper主要目录结构二、zoo.cfg文件配置一、简介1.2. Zookeeper的特性一致性:按照顺序分批入库原则性:事务要么成功,要么失败单一视图:客户端连接集群任一zk节点,数据都是一致的可靠性:每次对zk的操作状态都会保存在服务端实时性:客户端可以读到服务端的最新数据3. Zookeeper主要目录结构bin:主要的一些运行命令conf:存放配置文件docs:文档,一些htmllib:依赖的jar包

2022-01-19 16:46:40 1557

原创 记录一次Windows下端口占用但却找不到占用的进程的情况

问题今天早上启一个后端项目时候,意外的报端口占用,但是通过命令查询占用的进程却找不到PS C:\Users\mrdu> netstat -aon|findstr "8000"PS C:\Users\mrdu>原因开启了Hyper-v后,系统保留了很多端口通过命令查询hyper-v的端口保留范围PS C:\Users\mrdu> netsh interface ipv4 show excludedportrange protocol=tcp协议 tcp 端口排除范围

2021-11-15 09:31:53 4219 2

原创 记录一个好用的python内存消耗监控工具——memory_profiler

这是一个python模块,用于监控进程的内存消耗,以及逐行分析python程序的内存消耗。它是一个纯python模块,依赖于psutil模块。以一个Flask项目为例,导入模块,在方法头上添加@profile标签,当该方法被调用的时候,就会打印出该方法每一行的内存使用情况。当然用法还不止于此,详细可见https://pypi.org/project/memory-profiler/...

2021-08-12 08:48:24 1366

原创 Java的类加载和类加载器

文章目录1. 类的生命周期2. 加载类的方式3. 类加载器(Class Loader)3.1 类加载器的分类3.2 类加载器的关系下图来自网络,稍微展示一下Java的执行过程,就不专门自己画一个了(偷个懒),本篇主要入门级地介绍一下类加载和类加载器部分。整合一些自己的学习资料,做一个简单的记录,欢迎参考。1. 类的生命周期类从被加载到JVM开始,直到被卸载出内存,整个生命周期如图:加载:查找并加载类文件的二进制数据(两个步骤:1.查找 2.加载)1)查找:通过类的全限定名(包结构加类名,

2021-08-09 14:24:18 279

原创 JVM垃圾回收常见算法总结

文章目录1. 根搜索算法2. 标记-清除算法3. 复制算法4. 标记-整理算法5. 增量回收算法垃圾回收简称GC,新生代的垃圾回收一般称作Minor GC,老年代的垃圾回收一般称作Major GC或者Full GC。在垃圾回收时,一般会伴随着应用程序的暂停运行,除了GC所需的线程外,其他线程都会处于等待状态,我们做GC调优就是要减少这个等待时间。JVM垃圾回收的常见算法有:根搜索算法、标记-清除算法、复制算法、标记-整理算法和增量回收算法。1. 根搜索算法从一个节点GC ROOT开始(一个可以

2021-08-05 20:28:08 314

原创 Springboot(1.5.x & 2.x)应用监控Actuator + Prometheus配置

文章目录一、Actuator二、Springboot1.5.x的Actuator配置1. 引入依赖2. 添加properties文件配置3. 启动类里添加Bean4. 测试一下三、Springboot2.x的Actuator配置1. 引入依赖2. 添加properties文件配置3. 启动类里添加Bean4. 测试一下提示:以下是本篇文章正文内容,下面案例可供参考一、ActuatorActuator是Springboot的一个组件,在这个模块里实现了一些原生端点,可用供我们获取应用程序运行过程中

2021-06-17 15:42:35 2065

原创 RPC概述

前言个人学习笔记,欢迎参考及交流。一. RPC是什么?RPC(Remote Procedure Call):远程过程调用,是分布式系统常见的一种通信方法。从跨进程到跨物理机已经有几十年的历史。“远程”:从广义上讲,不在同一个进程的两个服务需要通过网络传输数据来相互访问(跨进程),这个距离我们称为“远程”。“过程”:在一些编程语言中,把有返回值的方法称为函数,无返回值的方法称为过程。所以“远程过程调用”就可以理解为跨进程地调用方法。二. 跨进程的交互形式有哪些?1. 基于中间件MySQ

2021-05-27 17:56:47 136

原创 几种颜色空间的简介

文章目录前言一、RGB二、BGR三、HSV四、HSL五、YUV(YCbCr)前言个人学习笔记,图片内容取至网络。一、RGB        由红绿蓝三原色的不同组合可以形成各种各样的颜色,人眼对颜色的识别就是这个原理。        在RGB的颜色编码下,每一个像素都是由分别依次代表“R”、“G”、“B”的三个数值组合而成,它的顺序也就是RGB的顺序。二、BGR      &nbs

2021-05-21 18:15:28 721 1

原创 视频基础知识

文章目录前言什么是视频?一、图像的几个概念1. 像素1.1 像素的位深1.2 像素的色深2. 分辨率二、显示器1. 屏幕的指标1.1 PPI(pixels per inch)1.2 DPI(dots per inch)1.3 分辨率1.4 宽高比2. 图像在显示设备上的显示问题2.1 色彩显示问题:RGB与BGR2.2 大小显示问题四、视频的码流五、颜色编码格式1. RGB颜色编码2. YUV(YCbCr)颜色编码3. RGB与YUV的转换前言个人学习笔记,欢迎参考,如有问题,敬请指出。有部分图片内

2021-05-20 09:42:05 254

原创 ARP协议和RARP协议

ARP(Address Resolution Protocol)地址解析协议RARP(Reverse Address Resolution Protocol)逆地址解析协议1、ARP协议ARP协议将网络层的32位IP地址转化成数据链路层48位的MAC地址。1.1 ARP报文ARP报文分为ARP请求和ARP应答报文两种,它们的报文格式可以统一为下图所示。硬件类型:占两字节,表示ARP报文可以在哪种类型的网络上传输,值为1时表示为以太网地址。上层协议类型:占两字节,表示硬件地址要映射的协议地址

2021-05-17 16:28:58 2633

原创 IP协议介绍

1、IP协议解决的问题实际的互联网络是错综复杂的,物理设备通过使用IP协议,屏蔽了物理网络之间的差异,网络中的主机使用IP协议连接时,就无需关注网络细节。1、使复杂的实际网络变成一个虚拟互联网络。2、使网络层可以屏蔽掉底层细节,专注于网络层的数据转发。3、解决了在虚拟网络中数据报传输路径的问题。2、IP数据报在物理层中传输的数据是比特流,在数据链路层中将数据封装成帧,在网络层中将帧数据表示成IP数据报。IP数据报分为IP首部和IP数据报的数据。其中IP首部是重点学习内容。4位版本号:指I

2021-05-17 16:25:11 1171

原创 IP地址分类以及子网划分

IP地址:是网络层的概念,IP地址长度为32位,分为四个8位,用点分十进制来表示,每部分范围0~255(0~255 . 0~255 . 0~255 . 0~255)。一个可有2的32次方个IP地址。1、IP地址的分类最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B

2021-05-17 16:20:55 4242

原创 网络层串讲

文章目录前言一、网络层解决的问题?前言本编文章为个人学习笔记一、网络层解决的问题?网络层决定数据在网络中的传输路径,也就是数据路由。

2021-05-13 10:52:42 422

原创 分布式日志收集框架Flume学习笔记(一)

本篇文章是我个人对于Spark Stream的学习记录。一、环境搭建

2020-02-24 20:55:03 154

空空如也

空空如也

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

TA关注的人

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