自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 资源 (9)
  • 收藏
  • 关注

原创 mysql——查询优化

一、Explain关键字查询结果列的信息二、Explain 关键字主要是描述可能用到的索引列是什么; ① mysql是如何选择索引的? 1>首先会sql解析,优化join查询, 2>找到所有可能用到的索引列, 3>分别计算全表扫描,可能用到索引列的成本 4>选择成本最低的进行查询 ② mysql查询成本公式:成本 = 加载的页数量*1.0(IO成本) + 查询的数据量*0.2(CPU成本...

2020-06-01 23:21:48 424

原创 解读 spring源码

学习了好久的spring源码,成果总结一下,不一定全对,都是自己研究的//一、创建一个srping容器,并放置几个核心的 Processor CommonAnnotationProcessor AutowiredAnnotationProcessorAnnotationConfigApplicationContext annotationConfigApplicationContext =...

2020-05-07 19:52:43 2061

原创 mysql——索引底层原理分析

一、区分几个概念1、页1、页号:记录当前是第几页。2、页目录:记录行数据,标记行开始的最小主键索引数据。3、行数据:标识每一行的数据。1_111a 标识第一行数据,1_表示主键索引。行与行数据使用链表有序相连。4、一页数默认为16k,并且会指向下一页的地址。2、b+树多个页相互连接在一起,为了方便查找会再向上生成一个新的类似页的东西,记录页码和每页最小的主键索引...

2020-03-17 22:25:59 204

原创 自定义feignClient 常见坑

自定义feignClient 踩过的坑,因为spring cloud 需要spring 4 以上的版本,所以对于低版本工程想要使用feign就需要自定义,在定义过程中遇到了很多问题,整理总结一下。(有需要的结合github请慢慢看,真的是手写的,但是有些东西不能全部粘贴出来抱歉了,全部的代码放在 第四点里面)整体的过程分为两个部分:一、从eureka上拉取服务地址,二、feignClient ...

2018-07-23 18:02:42 35794 1

原创 网络问题排查问题记录

准生产环境报出如下错误:连接某个服务器的时候出现连接超时现象;服务间调用是通过feign+nacos实现的;服务部署是用k8s实现的;初步判断是A->B调用是服务端出了初五。

2024-07-04 10:24:24 222

原创 Nacos

强一致性算法:Raft和Distro,Nacos使用JRaft算法(因为Nacos 是Java 技术栈,因此只能在JRaft、ZAB、Apache Ratis 中选择,但是ZAB 因为和Zookeeper 强绑定,再加上希望可以和Raft 算法库的支持团队随时沟通交流,因此选择了JRaft,选择JRaft 也是因为JRaft 支持多RaftGroup,为Nacos 后面的多数据分片带来了可能)。共识算法,通过算法保证各个节点之间数据一致性。Nacos数据一致性。Nacos一致协议层。

2024-03-18 16:19:53 553

原创 Netty架构

BootStrap 和 ServerBootStrap 分别负责客户端和服务端的启动,它们是非常强大的辅助工具类,串联了 Netty 的系列核心组件;Channel 是网络通信的载体,提供了与底层 Socket 交互的能力。

2024-03-06 10:12:13 760 1

原创 Netty线程部分源码整理

NioEventLoop实现了EventLoop接口、EventExecutorGroup接口和ScheduledExecutorService接口,并继承了SingleThreadEventExecutor类,这些接口和类为其添加了丰富的功能特性。3、NioEventLoogGroup相当于事件循环组,这个组中含有多个事件循环,每个事件循环是NioEventLoop。,每个NioEventLoop都有一个Selector,用于监听绑定在其上的socket的网络通讯。生成NioSocketChannel。

2024-03-05 15:42:15 403

原创 WebGis常用名词

切片后的数据集可以按照不同的格式进⾏压缩,例如zip、tar、gz等,压缩格式的选择通常需要根据实际需求和存储限制来确定。⾼斯-克吕格投影 在WebGIS应用程序中,为了确保数据的准确性和⼀致性,应该使⽤与地理数据源相同的地图参考系。切割成小块的地图图像,用以在Web上显示。矢量数据是由多种图形(点、线、面等)构成的地图,通常表示人文和自然现象,旋转和缩放不失真。栅格数据集被切割成的每个小块的切片,可以按照像素或者地理单位(如度或⽶)进行设置。被分割厂小块的地图图像,可以根据级别和坐标查询土块数据。

2024-02-21 14:35:17 651

原创 k8s-弹性伸缩

例如有一个Deployment控制有3个Pod,每个Pod的CPU使用率是70%、50%、90%,而HPA中配置的期望值是50%,计算期望副本数=(70 + 50 + 90)/50 = 4.2,向上取整得到5,即期望副本数就是5。可以看到,TARGETS的期望值是70%,而实际是0%,这就意味着HPA会做出缩容动作,期望副本数量=(0+0+0+0)/70=0,但是由于最小副本数为1,所以Pod数量会调整为1。这表示HPA在21秒前成功的执行了缩容动作,新的Pod数量为1,原因是所有度量数量都比目标值低。

2024-02-21 14:33:30 623

原创 k8s-持久化存储

网络存储,一般云厂商可提供块存储、文件存储、对象存储三种。PV:PV描述的是持久化存储卷,主要定义的是一个持久化存储在宿主机上的目录,比如一个NFS的挂载目录。PVC:PVC描述的是Pod所希望使用的持久化存储的属性,比如,Volume存储的大小、可读写权限等等。PV是实际存储数据目录,PVC是对数据存储的声明。Pod的Volume通过PVC绑定PV实现持久化存储。

2024-01-31 16:32:22 1400

原创 K8S网络

k8s不提供网络通信,提供了CNI接口(Container Network Interface,容器网络接口),由CNI插件实现完成。

2024-01-31 11:34:40 712

原创 k8s-配置管理

在Volume中引用ConfigMap,就是通过文件的方式直接将ConfigMap的每条数据填入Volume,每条数据是一个文件,键就是文件名,键值就是文件内容。进入Pod容器中,可以在/tmp目录下发现key1和key2两个文件,并看到文件中的值是base64解码后的值,分别为“hello world”和“3306”。在Volume中引用Secret,就是通过文件的方式直接将Secret的每条数据填入Volume,每条数据是一个文件,键就是文件名,键值就是文件内容。

2024-01-26 10:35:15 734

原创 k8s-Pod编排与调度

Pod是K8s调度的最小单元,但是Pod可能因为资源不足、集群崩溃等被驱逐。Controller Manage会管理Pod,完成Pod自愈、滚动升级等操作,通过Deployment这种资源完成Pod维护。一个Deployment可以包含一个或多个Pod副本,每个Pod副本的角色相同,所以系统会自动为Deployment的多个Pod副本分发请求。

2024-01-19 14:02:48 558

原创 k8s------Pod、Label、NameSpace

k8s的自愈能力只能保证Pod崩溃后重启,但是如内存泄漏,JVM进程存活,但是容器进程不可用,无法自愈,提供存活探针完成容器健康检查。HTTP GET:向容器发送HTTP GET请求,如果Probe收到2xx或3xx,说明容器是健康的。TCP Socket:尝试与容器指定端口建立TCP连接,如果连接成功建立,说明容器是健康的。Exec:Probe执行容器中的命令并检查命令退出的状态码,状态码为0说明容器是健康的。

2024-01-19 11:00:29 1229

原创 k8s-kubectl常用命令

查询集群所有资源的详细信息,resource包括集群节点、运行的Pod、Deployment、Service等。

2024-01-18 17:55:54 1890

原创 k8s-架构

方便实现服务发现,伸缩自愈等功能。

2024-01-18 10:48:10 681

原创 容器与K8s

容器 vs 虚拟机。

2024-01-18 10:35:05 1293

原创 K8S-YAML

kubernetes中资源可以使用YAML描述(如果您对YAML格式不了解,可以参考),也可以使用JSON。

2024-01-16 11:00:50 548 1

原创 背包问题。。。

构建二位象限,横轴背包最大容量,纵轴商品数据。

2023-09-08 15:26:24 333

原创 Mysql的锁

事务利用MVCC进行的读取操作称之为一致性读,或一致性无锁读,也称之为快照读。

2023-09-05 11:18:36 277

原创 Mysql事务及锁

trx_id :每次一个事务对某条聚簇索引记录进行改动时,都会把该事务的 事务id 赋值给 trx_id 隐藏列。roll_pointer :每次对某条聚簇索引记录进行改动时,都会把旧的版本写入到 undo日志 中,然后这个隐藏列就相当于一个指针,可以通过它来找到该记录修改前的信息。

2023-09-04 18:05:28 161

原创 mysql-undolog

ACID:通过undolog保证原子性。

2023-09-01 18:04:19 382

原创 Mysql redolog

数据库的ACID:A原子性,C一致性,I隔离性,D持久性;redolog:保证 持久性;redolog: 系统奔溃重启时需要按照上述内容所记录的步骤重新更新数据页,特点:1、redo 日志占用空间非常小:存储表空间ID、页号、偏移量以及需要更新的值所需的存储空间。2、redo 日志顺序写入磁盘:执行事务时,产生若干条 redo 日志,按顺序写入磁盘,顺序IO。

2023-08-31 14:17:16 428

原创 InnoDB的Buffer

1、如果该页不在 Buffer Pool 中,在把该页从磁盘加载到 Buffer Pool 中的缓存页时,就把该缓存页对应的 控制块 作为节点塞到链表的头部。2、如果该页已经缓存在 Buffer Pool 中,则直接把该页对应的 控制块 移动到 LRU链表 的头部。只要用到某个缓存页,就把该缓存页调整到LRU链表的头部,这样 LRU链表 尾部就是最近最少 使用的缓存页,所以当 Buffer Pool 中的空闲缓存页使用完时,淘汰链表尾部缓存页。

2023-08-31 11:22:25 285

原创 Mysql-索引查询相关

**查询列能完美匹配联合索引列,条件不符合最左原则,也可以使用索引列***查询条件key_part1, key_part2, key_part3是联合索引的全部列,遍历联合索引然后再找到key_part2= ‘abc’ 的值这样也能使用索引;索引类型为index;

2023-08-30 18:07:40 403

原创 InnoDB表空间

一、页面类型二、独立表空间结构三、系统表空间

2023-08-29 16:28:02 107

原创 Mysql B+树索引

内节点中存储的是目录项记录 ,叶子节点中存储的是用户记录(由于不是聚簇索引,所以用户记录是不完整的,缺少 country 列的 值)。这个索引对应的 B+ 树中页面和记录的排序方式就是 这样的:先按照 name 列的值进行排序。如果 name 列的值相同,则按照 birthday 列的值进行排序。如果 birthday 列的值也相同,则按照 phone_number 的值进行排序。

2023-08-29 16:08:11 341

原创 Mysql B+数索引结构

InnoDB 中索引即数据,也就是 聚簇索引的那棵 B+ 树的叶子节点中已经把所有完整的用户记录都包含了,而 MyISAM 的索引方案虽然也使用树形 结构,但是将表中的记录按照记录的插入顺序单独存储在一个文件中,称之为数据文件。这个文件并不划分为若干个数据页,有多少记录就往这个文件中塞多少记录就成了。我们可以通过行号而快速访问到一条记录。数据按顺序写入数据文件(不按照主键大小排序),索引信息另外存储到一个称为索引文件,MyISAM 会单独为 表的主键创建一个索引,叶子节点仅存储 主键值 + 行号。

2023-08-25 10:20:47 659

原创 Mysql-InnoDB数据页结构

大致分7部分。

2023-08-24 16:23:15 313

原创 Mysql-InnoDB记录结构

InnoDB 采取的方式是:将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位,InnoDB中页的大小一般为 16 KB。也就是在一般情况下,一次最少从磁盘中读取16KB的内容到内存中,一次最少把内存中的16KB内容刷新到磁盘中。4种不同类型的 行格式:Compact 、 Redundant 、Dynamic 和 Compressed;指定行格式语法:可以被分为 记录的额外信息 和 记录的真实数据:这部分信息是服务器为了描述这条记录而不得不额外添加的一些信息,这些额外信息分为3类,分别是 变长字段

2023-08-24 14:40:52 368

原创 Mysql字符集

3. 在 MySQL 中,一个字符集可以有若干种比较规则,其中有一个默认的比较规则,一个比较规则必须对应一个。2. 继续读一个字节 0x91 ,它的值也大于 0x7F ,再往后读一个字节发现木有了,所以这是半个字符。个程序里,另一个程序用不同的字符集去解码这个字节串,假设使用的是 gbk 字符集来解释这串字节,解码过程。说到底,字符串在计算机上的体现就是一个字节串,如果你使用不同字符集去解码这个字节串,最后得到的结果。如果创建或修改表时没有显式的指定字符集和比较规则,则该表默认用数据库的字符集和比较规则。

2023-08-23 10:40:07 2303

原创 Redis集群

主客户端向从服务器发送(replicaof): 从服务器将保存到redisServer的从服务器将向发送SLAVEOF命令的,表示复制指令被接收,实际上复制工作是在OK返回之后进行。

2023-08-14 14:42:58 176

原创 Redis辅助功能

模糊发布,订阅,退订, p*

2023-08-14 11:53:47 1523

原创 Redis 持久化

1、Redis父进程首先判断: 当前是否在执行save,或bgsave/bgrewriteaof (aof文件重写命令)的子进程,如果在执行则bgsave命令直接返回。2、父进程执行fork()操作创建子进程,这个复制过程中父进程是阻塞的,Redis不能执行来自客户端的任何命令。3、父进程fork后,bgsave命令返回”Bacground saving started"信息并不再阻塞父进程,并可以响应其他命令。4、子进程创建RDB文件,根据父进程内存快照生成临时快照文件。

2023-08-14 10:05:41 372

原创 Redis 缓存过期及删除

3、执行过程:当我们使用 expire命令设置一个key的失效时间时,Redis 首先到dict这个字典表中查找要设置的key是否存在,如果存在就将这个key和失效时间添加到expires这个字典表。当我们使用 setex命令向系统插入数据时,Redis 首先将 Key 和 Value 添加到dict这个字典表中,然后将Key和失效时间添加到expires这个字典表中。2、expires则用于维护一个 Redis 数据库中设置了失效时间的键(即key与失效时间的映射)。一、Redis缓存过期策略。

2023-08-14 09:23:50 1723

原创 Clickhouse 存储引擎

这个引擎是在 MergeTree 的基础上,添加了”处理重复数据”的功能,该引擎和MergeTree的不同之处在于它会删除具有相同主键的重复项。特点:1使用ORDERBY排序键作为判断重复的唯一键2.数据的去重只会在合并的过程中触发3.以数据分区为单位删除重复数据,不同分区的的重复数据不会被删除4找到重复数据的方式依赖数据已经ORDER BY排好序了5.如果没有ver版本号,则保留重复数据的最后一行6.如果设置了ver版本号,则保留重复数据中ver版本号最大的数据。

2023-08-07 17:17:15 1352

原创 Clickhouse 数据存储与查询

数据是以分区目录的形式组织的,每个分区独立分开存储.这种形式,查询数据时,可以有效的跳过无用的数据文件。

2023-08-07 16:49:16 3207

原创 Clickhouse 优势与部署

ClickHouse的背后研发团队是俄罗斯的Yandex公司,2011年在纳斯达克上市,它的核心产品是搜索引擎。我们知道,做搜索引擎的公司营收非常依赖流量和在线广告,所以做搜索引擎的公司一般会并行推出在线流量分析产品,比如说百度的百度统计,Google的 Google Analytics等。Yandex的Yandex.Metricah。ClickHouse就是在这种背景下诞生的。ROLAP: 传统关系型数据库OLAP,基于MySQL的MyISAM表引擎。

2023-08-04 17:23:36 954

原创 Redis部署

如果一个键包含一个 “{…}” 这样的模式,只有 { 和 } 之间的字符串会被用来做哈希以获取哈希槽;在集群中,key会被划分到不同的槽中。不同的节点会拥有散列槽的一个子集。第一个{ 和 第一个{ 右边的第一个} 是有效计算值。哈希标签是确保两个键都在同一个哈希槽里的一种方式。二、redis的部署方式。

2023-07-28 14:44:10 461

==========元数据漫想=======

==========元数据漫想=======

2023-06-09

Clickhouse学习笔记

Clickhouse学习笔记

2023-06-05

查询优化.pdf

查询优化.pdf

2020-06-03

OA界面HTML页面.rar

oa系统页面,可以自己实现后台。

2019-06-11

springCloud与docker实战 周立

springCloud与docker实战,周立著作。

2018-12-27

jd-gui-0.3.3.windows

jd-gui-0.3.3.windows,反编译工具,JD分为JD-GUI、JD-Eclipse两种运行方式,JD-GUI是以单独的程序的方式运行,JD-Eclipse则是以一个Eclipse插件的方式运行。

2017-09-04

Android个人助理

Android个人助理希望对你有用。

2015-08-29

空空如也

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

TA关注的人

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