自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 Mysql 主从间延迟,主从切换策略

Mysql 主从间延迟首先需要知道在网络情况良好的情况下,主从之间的延迟主要产生于从库根据消费 relay log 的时间。主从间的延迟是 seconds_behind_master。主从延迟的主要原因可能如下:主库机器配置高于从库机器由于从库有时不需要被请求,于是就用稍微差一点的机器部署,但是更新的 IOPS 是相同的,所以从库可能跟不上主库的更新速度。这种情况下一般会给从库设置 非双1 (简单理解就是多个事务一起攒到内存中再把内存同步到硬盘),现在主从间可能发生切换,所以这种主机配置高于从

2022-04-27 14:02:02 946

原创 etcd goland 客户端操作demo,put、get、del & lease相关

首先要下载依赖go get -u go.etcd.io/etcd/client/v3相关操作demo如下:package mainimport ( "fmt" clientv3 "go.etcd.io/etcd/client/v3" "golang.org/x/net/context" "sync" "time")var wg sync.WaitGroupfunc main() { // 创建连接 cli, err := clientv3.New(clientv3.Con

2022-02-18 18:00:25 8255

原创 在 docker下创建 kafka 服务端,并使用客户监听消息

由于 kafka 使用了 zookeeper 提供集群的服务注册发现,所以先要启动一个 zookeeper 容器docker kafka

2022-02-16 12:49:19 12998

原创 golang 中的协程 goroutine,深度理解 GMP 模型

包括进程、线程、协程,为什么使用协程,go中的协程goroutine,GMP模型的结构,调度器的策略等

2022-02-13 19:05:59 12207

原创 快速使用 docker 创建 redis容器并设置密码

创建目录结构mkdir -p /data/redis/data创建配置文件vim /data/redis复制下面的配置文件并粘贴#redis.conf# Redis configuration file example.# ./redis-server /path/to/redis.conf ################################## INCLUDES ####################################这在你有标准配置模板但是每.

2022-02-11 20:46:04 12293

原创 如何使用 redis ?

入门安装到官网下载tar包将tar包放在 /opt 目录下,并解压cd /opttar -zxvf redis-6.0.6.tar.gz安装环境# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repoyum makecache fast# gcc全家桶yum install -y gcc-c++yum install -y cppyum instal

2022-02-11 19:27:52 11990

原创 golang通过socket实现简单多人聊天室

聊天室包括以下功能:聊天超时检查断开连接查看用户列表改名退出server.gopackage mainimport ( "fmt" "net" "strings" "time")func main() { // 监听聊天室端口 port := "8888" listener, err := net.Listen("tcp", ":"+port) if err != nil { fmt.Println(err) return } fmt.Printf("

2022-02-06 23:34:53 12462

原创 golang中select实现超时处理

select会对每个case进行判断,当其中一个case可以操作时执行该case,当所有的case不能执行时会阻塞,我们根据此特性写出如下代码package mainimport ( "fmt" "time")func main() { ch := make(chan int) s := make(chan int) go func() { for { select { case num := <-ch: fmt.Println(num) case

2022-02-05 20:23:44 12363

原创 Golang 中直接赋值,是值传递还是地址传递?

1. 普通变量普通变量都是值传递 a := 1 b := a fmt.Printf("%p\n%p", &a, &b) // 0xc0000160a8 // 0xc0000160c0 a := 1.0 b := a fmt.Printf("%p\n%p", &a, &b) // 0xc0000160a8 // 0xc0000160c0 a := "hello" b := a fmt.Printf("%p\n%p", &a, &b

2022-01-29 19:15:40 13429

原创 mysql使用联合索引调优案例

写项目时遇到一个场景:一张病例表需要通过name、gender查询病人的 id、name、certification、gender并且按照创建的时间戳进行排序考虑到考虑到索引覆盖若只有name、gender作为索引会造成回表导致额外的io,使用name、gender、certification建立索引,后发现查询速度并没有明显变快,后来加上timestamp后速度为原来的70倍总结 order by 也需要建立索引同时范围查询后的索引会失效,例如建立a、b索引,a使用范围查找则b索引不会生效...

2022-01-25 16:30:00 11998

原创 阿里电话一面

做个自我介绍介绍下项目项目中让你有成就感的部分StringBuffer的底层讲一下String和StringBuffer的差别,StringBuffer和StringBuilder的优化垃圾回收器mysql索引底层笔试算法:a. 按照索引奇偶重构索引 输入: 1->2->3->4->5 输出: 1->3->5->2->4b. 二叉树中距离给定节点为k的节点/** 输入 [a,b,c,d] b 1 输出 [a,b] a .

2022-01-21 17:20:12 12720

原创 当你在浏览器上输入url会发生什么

查找浏览器缓存是否存在域名到ip的映射不存在则查找操作系统缓存是否存在域名到ip的映射递归请求DNS,以www.baidu.com 为例a. 查找根DNS,返回其子域DNS的ip .b. 访问子域DNS,返回其子域DNS的ip com.c. 访问子域DNS,返回其子域DNS的ip baidu.com.d. 访问子域DNS,返回其子域DNS的ip www.baidu.com.最终得到服务器ip,通过三次握手建立连接向服务器发起一条http请求,请求html服务器处理请求并响应四次挥手.

2022-01-20 16:43:39 12399

原创 字节后端实习一、二、三面(已过)

1.做个自我介绍2.讲讲项目,讲了一个大创项目然后讲了一下读的一个开源框架,讲了一个实验室项目然后拓展到了mysql索引调优3.https相比于http的优点4.三次握手四次挥手的作用是什么,为什么不能减少次数5.https在传输过程中与http有什么不同(答的很模糊估计是错了)6.java中的集合了解么,说了一些常用的集合然后还有并发集合7.这些集合底层实现都讲一下,就讲了LinkedList、ArrayList、HashMap然后被问到HashMap的扩容机制和ConcurrentHashM

2022-01-20 15:15:12 12690

原创 堆排序java

1.将数组构建成大顶堆2.取出最大元素,最后一个元素放到最大元素处重复1、2拿出的顺序就是从大到小的数组public class heapSort { public static int[] arr; public static int len; public static void main(String[] args) { arr = new int[]{7, 10, 3, 5, 2, 6, 8}; len = arr.length;

2022-01-20 14:48:48 12532

原创 mysql 中的 redo log 与 binlog

一条 sql 更新语句也会跟查询语句一样,经过连接层、解析层、优化层、执行层 (可看 mysql 架构)但是除此之外,更新还涉及了两个重要的日志模块:redo log(重做日志)、binlog(归档日志)redo logredo log 是引擎层的日志mysql 使用了 WAL 技术(Write-Ahead-Logging),它的关键点就是先写日志,再写磁盘。如果每一次更新操作都需要从磁盘中找到对应的记录,然后对记录进行修改,就会产生很高的 IO 成本以及查找成本,严重的影响效率,WAL 就是

2022-01-14 13:53:45 12304

原创 mysql 中 sql 查询语句的执行过程 (mysql基本架构)

mysql总体上分为server层和存储引擎层server层负包括连接器、缓存、解析器、优化器、执行器存储引擎层则负责存储数据连接器连接器负责跟客户端建立连接、获取权限、维持和管理连接。它首先会判断请求的账号和密码是否正确,如果不正确则返回 ”Access denied for user”的错误,当账户验证成功后,连接器会去权限表中查询该用户的权限,该连接随后所有操作的权限都与此次查询的权限有关(即使修改了用户的权限,这条连接的权限还是获取时的权限,只有下次建立新的连接才会修改)通过 sh.

2022-01-13 20:41:07 12205

原创 JVM最详细知识点笔记-监控与性能调优篇

性能监控与调优一、概述1.1 基本概述监控的依据运行日志异常堆栈GC日志线程快照堆转储快照调优的方向合理地编写代码充分并合理的使用硬件资源合理地进行JVM调优1.2 性能优化的步骤1.2.1 发现问题:性能监控一种以非强行或者入侵方式收集或查看应用运营性能数据的活动。监控通常是指一种在生产、质量评估或者开发环境下实施的带有预防或主动性的活动。当应用相关干系人提出性能问题却没有提供足够多的线索时,首先我们需要进行性能监控,随后是性能分析。常见的问题:GC

2022-01-10 21:31:30 12724

原创 JVM最详细知识点笔记-字节码与类的加载篇

字节码与类的加载一、Class 文件结构1.1 概述Java虚拟机是一个跨语言的平台Java虚拟机不和包括Java 在内的任何语言绑定,它只与“Class 文件”这种特定的二进制文件格式所关联。无论使用何种语言进行软件开发,只要能将源文件编译为正确的Class文件,那么这种语言就可以在Java虚拟机上执行。可以说,统一而强大的Class文件结构,就是Java虚拟机的基石、桥梁。前端编译器想要让一个Java程序正确地运行在JVM中,Java源码就必须要被编译为符合JVM规范的字节码。前端

2021-12-07 16:41:38 12948

原创 一篇文章带你弄懂乐观锁与悲观锁,CAS原子性,synchronized底层原理

文中加入了个人理解,如有不准确的地方欢迎提出,笔者会及时的进行改正。乐观锁与悲观锁乐观锁: 假设数据不会发生冲突,只有在进行数据更新的才会对数据进行检查,如果冲突则更新失败并返回错误信息悲观锁: 悲观锁与乐观锁恰恰相反,它是假设资源每次都会被修改,所以在访问资源之前都会进行上锁,这样其他人想要访问资源的时候就会被阻塞,直到锁被释放。CASCAS(Compare And Swap)是乐观锁的一种实现方式。通过 CAS 实现的轻量级锁会在想要更新变量时判断线程内存中的变量与公共内存中的变量值是否相

2021-11-25 14:06:54 9385

原创 设计模式之单例模式-java

单例模式什么是单例模式我们知道单例模式顾名思义就是一个类只有一个实例对象,且不能通过 new 来创建该类的实例对象 ,当外部想要拿到这个类的实例的时候,不能直接获取,需要通过调用该类的方法 getInstance 从而得到这个唯一的实例对象。由上面一段话我们可以分析出单例模式的几个特点一个类只有一个实例对象,不能直接访问 => 这个实例对象一定是 static ,private 的不能通过 new 来 创建实例对象 => 这个类的构造器是 private 的通过上述分析我们能够得

2021-11-25 13:00:00 4967 2

原创 快速入门SpringSecurity,权限控制一步解决

SpringSecurity快速入门Spring Security 是一个提供身份验证、授权和针对常见攻击的保护的框架。凭借对命令式和反应式应用程序的一流支持,它是保护基于 Spring 的应用程序的事实上的标准。01 环境搭建在pom.xml中加入依赖导入静态资源welcome.html|views|level1 1.html 2.html 3.html|level2 1.html 2.html

2021-11-23 10:46:29 2708

原创 SpringBoot最强入门教程,带你快速走进SpringBoot的世界

SpringBoot最强入门教程01 简介1.1 spring是如何简化开发的基于POJO的轻量级和最小侵入性编程,所有东西都是bean;通过IOC,依赖注入(DI)和面向接口实现松耦合;基于切面(AOP)和惯例进行声明式编程;通过切面和模版减少样式代码,RedisTemplate,xxxTemplate;1.2 微服务微服务是一种架构风格,可以理解成小型服务,这些服务通过HTTP的方式进行互通。微服务并没有一个官方的定义,想要直接描述微服务比较困难,我们可以通过对比传统WEB应用,来理

2021-11-23 00:00:00 357

原创 Linux常见命令作用笔记

Linux笔记 /bin:是binary的缩写,包含了引导系统启动所需的命令和普通用户可以使用的常用命令 /lib:是根文件系统目录下程序和核心模块的共享库,存放了根文件系统程序 运行所需的共享文件。这些文件包含了可被许多程序共享的代码 以避免每个程序都包含有相同的子程序的副本 故可以使得可执行文件变得更小,节省空间。 /etc:用来存放所有的系统管理所需要的配置文件和子目录,linux正是因为这些文件才能正常运行 /mnt:这个目录是空的,系统提供这

2021-11-21 12:05:56 127

原创 带你轻松解决spring cloud的版本对应问题

spring cloud 与 spring boot 版本对应相信大家在使用spring cloud的时候经常会因为版本不兼容而报错,这里为大家分享一下笔者常用的一些查询版本对应的网址。↓↓↓spring cloud alibaba githubspring cloud actuatorspring cloud githubspring 官网以上的网址能解决绝大部分版本依赖问题希望能对大家有所帮助...

2021-11-19 11:11:41 260

原创 SpringCloud Netfilx全家桶+ Alibaba(nacos、sentinel、seata) 快速配置,快速启动

NetflixEureka服务注册与发现注册中心pom.xml<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> <ver

2021-11-19 11:01:03 312

原创 JVM最详细知识点笔记-内存与垃圾回收篇

内存与垃圾回收一、JVM与JAVA体系结构1.1 概述JAVA虚拟机:含义:Java虚拟机是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语言编译而成。JVM平台的各种语言可以共享Java虚拟机带来的跨平台性、优秀的垃圾回器,以及可靠的即时编译器。Java技术的核心就是Java虚拟机(JVM,Java virtual Machine因为所有的Java程序都运行在Java虚拟机内部。作用:Java虚拟机就是二进制字节码的运行环境,负

2021-11-17 19:27:32 275

原创 docker / docker-compose 使用说明[笔记]

Docker一、概述发布一个项目需要部署环境(Redis,ES, Hadoop……),在服务器上重新部署环境非常麻烦,不能够跨平台。所以通过Docker用Windows全部处理完,最后再发布到Linux。传统:开发jar,运维部署环境现在:开发打包部署,一套流程完成Docker为解决部署的问题提供了一套解决方案,构建镜像,部署时直接下载。Docker通过一种隔离机制,将服务器空间运用到极致。文档地址:https://docs.docker.com/get-started/仓库地址:ht

2021-11-17 18:40:22 1579

原创 MongoDB快速入门,下载 + 配置 + 使用

一、简介1.特点是为了快速开发互联网Web应用而设计的数据库系统是一种No SQL数据库(非关系型数据库),一种文档型数据库所谓文档型数据库,是一种类似于JSON的结构,简单理解就是value可以存储二进制数据(BSON)2.下载下载地址:https://www.mongodb.org/dl/win32注意:奇数版为测试版,偶数版为稳定版安装mongodb在根目录下创建配置文件 mongo.configdbpath=D:\1tools\mongodb\data\dblogpat

2021-03-23 21:51:19 103

原创 关于maven创建springmvc项目的一些坑(解决各种可能出现404的问题)

关于用maven创建springmvc项目的一些坑大家在学习springmvc的时候一定会经常遇到404,今天就给大家避避一些常见的坑。1.Tomcat的contextTomcat默认会有一个上下文(你可以修改成任意的)此时在你的要访问的所有路径前都要加上相应的上下文在你所有要访问的路径前也要加上相应的上下文2.构件首先打开项目结构找到你布置Tomcat所用的构件在WEB-INF中创建一个lib目录并选中点击上面的小加号并选中库文件选中全部并确认3.静态资源没有被部署

2021-02-22 15:28:23 2738 7

原创 超级详细的SSM三大框架整合(基于springmvc+spring+mybatis构建项目)

SSM三大框架整合(构建一个SSM项目)github地址:SSM项目1.SSM是什么ssm:spring mvc + spring + mybaitsspring mvc 负责管理客户端与JAVA应用之间的交互(负责MVC设计模式)mybatis 负责管理数据库与JAVA应用之间的交互(负责数据持久层)spring则是负责管理spring mvc与mybatis相关对象的创建和依赖注入2.基本步骤2.1创建maven工程,在pom.xml中添加相关的依赖创建项目创建基本的目录结构

2021-02-09 17:08:00 540 2

原创 对event loop的理解(举例说明javascript中event loop事件循环的运行机制)

对event loop的理解(event loop即事件循环的运行机制)前言js是一种单线程的语言,所以它通过event loop机制实现了对异步任务和多线程。首先你要对栈、队列的数据结构有一定的了解,其次还要会Promise才能看懂今天的内容。一、在了解event loop前,我们首先要知道一些基础知识宏任务:script全部代码、setTimeout、setInterval、setImmediate、I/O、UI Rendering。微任务:Process.nextTick(Node 独有

2021-02-04 15:50:12 3343 10

写配置项(可加密解密)

写配置项(可加密解密)

2014-08-23

空空如也

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

TA关注的人

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