自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Golang内存分配-笔记

大对象的分配经历:mheap基数树查找、操作系统分配的过程,每个大对象都时一个特殊的span,级别为0。mcache包中含有所有大小规格的mspan,但每一种都有一个,除了上面说到的0级span以外,mcache的span都来自mcentral。除了0级mspan,每个级别的span都会有一个mcentral用于管理span链表,所有的mcentral都是一个数组,由mheap进行管理。查找时会遍历mcentral中的有空闲元素的链表和没有空闲元素的链表,去查找有没有合适的span。

2023-02-10 17:30:44 279

原创 分布式数据基础-分区--学习笔记

在删除节点时,由于每个节点都需要一个相应的哈希值,所以增加节点需要修改哈希函数,这回导致有许多数据都要重新映射,引起数据大规模的移动,并且在此期间系统可能无法正常工作。虽然分区有助于让系统高效的处理较大的数据集,并且易于拓展,但也带来了一些限制,在一个垂直分区的数据集中将不同表的数据组合起来的查询(即join查询)会非常低效。水平分区是对表进行拆分,将不同的行放入不同的表中,所有在表中定义的列在每个分区中都能找到,所以表的特性依然得以保留。如果系统中如果有不同配置,不同性能的机器,那么虚拟节点也很有用。

2023-02-07 16:24:29 670

原创 事务与事务隔离级别-学习笔记

ACID的一致性和CAP定理中的一致性是不一样的,ACID中的一致性属于数据库事务领域的概念,具体含义如上所述;不同的隔离级别有着不同的保证。仅仅通过“行级锁”是无法实现事务序列化的,必须通过其他机制保证新插入的数据不会被刚执行查询操作的事务访问到。不可重复读与脏读的区别在于:脏读是由于事务回滚所导致的,而不可重复读是读到了其他事务已经提交的数据。读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。

2023-02-07 16:17:30 125

原创 MySQL索引以及查询优化-学习笔记

补充:普通索引若数据再内存中直接内存中更新,否则会将更新操作先记录到channge buffer中,等下一次查询将数据读到内存中再进行change buffer里相关更新操作后将数 据返回,这样一来,再写多读少的情况下就减少了磁盘IO,若写完就马上查询,就大可不 必用change buffer,不但没提高多少效率还造成维护change buffer额外消耗。但是, 随着数据量的变化,选择的索引也会随之变化。连接查询 不需要建立临时表 ,其 速度比子查询 要快 ,如果查询中使用索引的话,性能就会更好。

2023-02-06 14:12:55 159

原创 MySQL索引失效的11种情况-学习笔记

在MySQL建立联合索引时会遵守最佳左前缀匹配原则,检索数据时从联合索引的最左边开始匹配,来选择使用哪一个索引。统一使用utf8mb4( 5.5.3版本以上支持)兼容性更好,统一字符集可以避免由于字符集转换产生的乱码。由于InnoDB底层为B+树,如果主键频繁乱序插入,会导致频繁的页面分裂,所以主键最好使用自增ID。当一个select语句中有若干个等值判断时,尽量创建由相关字段组成的联合索引。应该将将范围查询条件放置语句最后。

2023-02-06 14:11:33 1128

原创 MySQL索引创建与设计原则-学习笔记

在数据表中的数据行数比较少的情况下,比如不到 1000 行,是不需要创建索引的。在where中使用不到的字段,不要设置索引。有大量重复数据的列上不要建立索引。避免对经常更新的表创建过多的索引。删除不再使用或者很少使用的索引。数据量小的表最好不要使用索引。不建议用无序的值作为索引。不要定义冗余或重复的索引。

2023-02-06 14:10:47 75

原创 Ubuntu20.04 Docker快速搭建Redis集群

Ubuntu20.04 Docker搭建Redis集群

2022-06-29 17:42:17 468

原创 Ubuntu 20.04 快速搭建Vue开发环境

Ubuntu 20.04 快速搭建vue开发环境

2022-03-13 09:53:43 2524

原创 go1.17 slice扩容机制源码剖析详解

go1.17 slice扩容机制源码剖析详解扩容问题按照一般的说法,执行下面的代码,扩容状态是在容量大于1024之后每次增加原来的四分之一,如下图func Int64Grow() { intSlice := make([]int64,0) lastCap,nowCap := 0,0 fmt.Printf("%10v %10v %10v \n","nowIdx","lastCap","nowCap") for i := 1 ;i < 3000 ; i++ { intSlice = a

2021-10-12 09:39:42 452

原创 红黑树详解及实现(golang)

参考插入过程参考《STL源码剖析》删除过程参考《算法导论》以及博客:红黑树的删除操作源码实现参考nginx中红黑树的实现和《STL源码剖析》红黑树的定义学习、理解红黑树时,必须时紧紧刻围绕着红黑树的定义以下是《STL源码剖析》中给出的定义:根节点是黑色每个节点非红即黑如果一个节点为红色,它的子节点必为黑色任何一个节点至NULL(树尾端)的任何路径,所含黑节点数必须相同红黑树的节点的定义type RbTreeColor booltype RbTreeKeyType intt

2021-09-29 14:05:21 955

原创 Go 浅析interface

interface 的数据结构eface 和 iface源码:type iface struct { tab *itab data unsafe.Pointer}type eface struct { _type *_type data unsafe.Pointer}eface 表示空的 interface{},它用两个机器字长表示,第一个字 _type 是指向实际类型描述的指针,第二个字 data 代表数据指针。iface 表示至少带有一个函数的 interface,

2021-09-12 11:36:36 234

原创 SpringBoot 拦截器和过滤器区别及应用

这两天了解到了拦截器和过滤器,现在对其进行总结整理1. 过滤器与拦截器的基本概念在知乎上看到一篇非常棒的:原文链接从里面摘出来一些内容:1、过滤器和拦截器触发时机不一样,过滤器是在请求进入容器后,但请求进入servlet之前进行预处理的。请求结束返回也是,是在servlet处理完后,返回给前端之前。2、由上面和拦截器可以获取IOC容器中的各个bean,而过滤器就不行,因为拦截器是spring提供并管理的,spring的功能可以被拦截器使用,在拦截器里注入一个service,可以调用业务逻辑。

2021-08-17 15:39:31 2024

原创 SpringBoot2.5.3 集成Druid 1.2.6数据库连接池

今天晚上搭了一个新项目,要集成一下数据库连接池Druid,本想用之前写的笔记,直接复制粘贴,却没想到又是各种版本、配置的坑,夜深人静又开启了漫漫踩坑路1. 添加依赖以前我记录的文档上有关于必要依赖,是这个样子:都是可以成功启动之后直接复制的<!-- druid --><dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-start

2021-08-17 03:39:34 924

原创 git设置保护分支

1. 新建保护分支规则可在 管理>设置保护分支 中,点击新建规则按钮,到如下然后输入分支名称或通配符规则点击保存即可2.修改分支点击 分支会来到分支管理页面在此页面中设置分支状态即可,如需进一步设置,点击标注三角形旁边的按钮进行设置即可更加详细教程:官网链接...

2021-08-14 14:13:30 3933

原创 Uni-App v-for遍历map

之前在用vue的v-for我记得好像是key代表一个键值对的键,value代表键值对的值今天写写uni-app发现好像不对<u-cell-item :title="key" :label="value" v-for="(value, key) in contactsMap" :key="key"> </u-cell-item>在uniapp中的写法如下:key就像遍历数组时的index,而value才是一个键值对,value[0]代表键,value[1]代表值&lt

2021-08-10 19:38:21 1817

转载 Vue v-if和v-Show区别(转)

转载,原文非常赞,链接:https://www.jianshu.com/p/7af8554d8f08区别1.手段:v-if是通过控制dom节点的存在与否来控制元素的显隐;v-show是通过设置DOM元素的display样式,block为显示,none为隐藏;2.编译过程:v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件;v-show只是简单的基于css切换;3.编译条件:v-if是惰性的,如果初始条件为假,则什么也不做;只有在条件第一次变为真时才开始局部编译(

2021-08-10 19:24:45 145

原创 JS 实现替换字符串中所有指定字符总结

最近在写前端需要把字符串中的空格全部替换掉,对js不是很了解,现在对此进行总结let str = '123 456 789';console.log(str.replace(' ', ''))如果按照上面的写法 将会打印:123456 789而如果按照如下写法,则或实现此功能let str = '123 456 789';console.log(str.replace('/ /g', ''))将会打印:123456789所以,可以总结一下str = str.replace('/你想要替

2021-08-10 19:05:47 9488 2

原创 CSS 设置普通边框border总结

这三项都要写全才可以生效.area{ border-width:2px; border-style:solid; border-color:red;}第二种形式:.area{ border:2px solid red;}如果我只想设置某一条边的边框,比如下边框.area{ border-bottom:2px solid red;}但如果我想为每一条边设置一个样式.area{ /*分别代表了 上 右 下 左 边*/ border-width: 1px 2p

2021-08-10 18:53:16 256

原创 SpringBoot2.5.3集成ZipKin实现链路追踪

首先,要搭建Zipkin,部署在docker更好,也可以下载jar包在终端启动官网:https://zipkin.io/下载链接:https://search.maven.org/remote_content?g=io.zipkin&a=zipkin-server&v=LATEST&c=exec1. 添加必要依赖 <!-- Zipkin --> <dependency> <groupId>org.springframework

2021-07-31 10:50:36 251

原创 SpringBoot2.5.3集成Spring Cloud Config服务配置中心

新建一个my-config工程,作为配置中心服务端,在此之前我是用的Consul作为注册中心,并已经有一个,服务消费者my-consumer,服务提供者my-producer前提是我们已经搭建好RabbitMQ,在其启动后并可以正常访问http://localhost:156721. 简单集成Spring Cloud Config,连接到Git仓库配置中心服务端实现1. 添加必要依赖<dependency> <groupId>org.springframework.

2021-07-31 10:37:16 990

原创 SpringBoot2.5.3集成Spring Cloud Gateway服务网关

在用zuul 时一直报错,找了好久发现在比较新的SpringBoot版本中好像不支持Zuul了:springcloud微服务 - 集成Zuul网关 无法通过网关(里面的评论)所以现在入门一下Spring Cloud Gateway,之前了解一下感觉这还是比较博大精深,今天记录一下入门用法,深入的以后再研究。Spring Cloud Gateway比较详细的教程【转】下面只是入门用法1. 添加必要依赖<properties> <java.version>11</

2021-07-29 23:44:07 1079

原创 SpringBoot2.5.3集成Spring CLoud Turbine

我们之前先集成了Hystrix实现服务熔断然后又实现了Hystrix DashBoard实现对Hystrix的实时监控,但也是只能看到单个应用内的服务信息,我们还需要可以汇总数据并宣示到HystrixDashBoard的工具所以我们可以集成Spring Cloud Turbine,但要建立在集成HystrixDashBoard基础上升级Hystrix服务端1. 添加必要依赖<!-- https://mvnrepository.com/artifact/org.springframework.c

2021-07-29 22:46:52 234

原创 SpringBoot2.5.3集成HystrixDashboard

在集成Hystrix DashBoard之前,一定要先搞好Hystrix,集成服务熔断集成Hystrix DashBoard 要新建一个spring项目,作为一个单独的对Hystrix进行实时监控的的服务一、新建Hystrix服务1. 添加必要依赖Spring Cloud:<properties> <java.version>11</java.version> <spring-cloud.version>2020.0.3</sp

2021-07-29 22:06:54 477

原创 Spring Boot2.5.3集成Hystrix实现服务熔断

1. 添加必要依赖<!-- Hystrix --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> <version>2.2.9.RELEASE</version></dependency&

2021-07-29 21:10:45 879 2

原创 SpringBoot2.5.3集成Spring Cloud Feign

一. Consumer服务:1.添加必要依赖<!--feign --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <version>3.0.3</version></dependency>

2021-07-29 20:30:20 745

原创 SpringBoot2.5.3集成Consul

0. 前提是已经配置好Consul,并启动1. 添加必要依赖<properties> <java.version>11</java.version> <!--声明 Spring Cloud 版本--> <spring-cloud.version>2020.0.3</spring-cloud.version></properties><dependencies> <!--Co

2021-07-29 17:46:24 278

原创 SpringBoot2.5.3集成SpringBootAdmin

一、SpringBootAdmin服务端1. 添加必要依赖<!--Spring Boot Starter--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId></dependency><!--Spring Boot Admin Server

2021-07-29 17:25:06 770

原创 CentOS8 打开新终端并执行命令

在这篇文章中(原文章):给到的命令:gnome-terminal -t " title-name" -x bash -c " sh ./run.sh;exec bash;"执行之后名不能弹出新窗口 只是在终端中添加新的标签页,而且会打印出如下信息:前两行的提示,和命令的执行效果表明,-x 不好用了根据它的提示,把命令换成:gnome-terminal -t " title-name" – bash -c " sh ./run.sh;exec bash;"即可...

2021-07-26 21:10:25 895

原创 Spring Boot2.5.2、SpringCloud、Fegin使用hystrix服务熔断

学习有关服务熔断的内容,又一次踩坑,并记录,仅供参考。因为我使用的服务间调用方式是基于Spring Cloud Feign 的,资料上说Fegin已经依赖了Hystrix所以再不需要改动pom文件即可使用,正因如此遇到了一些问题1.依赖版本Spring Boot<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent

2021-07-23 10:41:04 551 1

原创 踩坑SpringBoot2.5.2+Consul注册中心

踩坑SpringBoot2.5.2+Consul注册中心最近在跟着书上和一些资料学习Java 微服务,上面有一句话:”Spring Boot2.1之后的版本会出现Consul服务注册商的问题,······,由于版本太新,网上也没有相应的解决方案“(2019年的),激发了我的踩坑欲望,所以学习的时候Spring Boot使用了比较新的2.5.2。记录一下踩坑过程,仅供参考。一. Consul的安装和版本在官网下载二进制文件,解压配置环境变量即可。当前使用的版本:当然,使用之前先启动: consul

2021-07-22 23:40:10 776

空空如也

空空如也

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

TA关注的人

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