自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 单点登录SSO

为什么要实现单点登录?我们希望在分布式开发的过程中,当用户在登录任何一个子系统的时候,在一定时间范围内,相关联的系统在一定时间范围内可实现免登录。1、在单体架构下:步骤:(cookie和session)假如客端对模块进行访问,对某一功能接口进行访问(即对受保护的资源进行访问)1、客户端会将当前的浏览器里以cookie的方式保存一个对应访问地址的sessionId,携带去服务端请求2、首次登陆服务端检测不到会返回一个登录界面3、输入用户名密码4、服务端会和DB进行一个校验5、通过校验服务端会

2022-03-27 09:47:19 1174

原创 postman测接口图示(@pathVariable、@requestBody、@requestParam)

@pathVariable:@requestBody@requestParam:

2021-12-20 17:05:21 8818 2

原创 缓存穿透和哈希碰撞·(别问我为啥这两个写一起了)

为什么会缓存穿透?如何解决?什么是哈希碰撞?哈希函数寻址是不是一一对应

2021-12-17 11:30:30 203 2

原创 GC垃圾回收算法三种方式

GC垃圾回收算法 判定对象存活方法收 旧对象,破 对象,用不着的对象, 用旧对象 、破对象 、用不着 的 对 象换 盆,换大铝盆,换各种盆...............

2021-12-15 09:35:00 2273 3

原创 初识springcloud(微服务)

1、微服务的定义(microservice)(1)多个微服务开发的依然是一个完整的应用(2)微服务都会独立运行在一个独立的进程里面(3)微服务之间通常会采用轻量级的通信机制来进行通信,比如http https socket netty dubbo thrift(4)通常采用自动化部署方式, devops cicd docker、 K8s、 service mesh、云原生(5)通常都是去中心化的,也就是假如某个节点挂了,而不会影响其他节点(6)这些微服务可以通过不同的编程语言实现 订单:java

2021-12-15 08:19:52 801 4

原创 事务(ACID)、数据库事务回滚(脏读、幻读、不可重复读)

事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。持久性(durability)。持久性

2021-12-09 22:55:11 1490

原创 TCP的三次握手和四次挥手

TCP的三次握手和四次挥手TCP协议是7层网络协议中的传输层协议,负责数据的可靠传输。在建立TCP连接时,需要通过三次握手来建立,过程是:1.客户端向服务端发送一个SYN2.服务端接收到SYN后,给客户端发送一个SYN_ACK 图灵学院周瑜3.客户端接收到SYN_ACK后,再给服务端发送一个ACK在断开TCP连接时,需要通过四次挥手来断开,过程是:1.客户端向服务端发送FIN2.服务端接收FIN后,向客户端发送ACK,表示我接收到了断开连接的请求,客户端你可以不发数据学了,不过服务端这边可能

2021-11-22 21:44:12 1504 3

原创 go中如何使用es中的updatebyQuery

代码】go中如何使用es中的updatebyQuery。

2022-07-25 15:31:14 996

原创 benchmark(go语言测试分析)

benchmark测试(以字符串拼接为例)1、首先实现拼接字符串拼接函数测试该用例参数说明:1、属性 b.N 表示这个用例需要运行的次数2、BenchmarkFib-8 中的 -8 即 GOMAXPROCS,默认等于 CPU 核数。可以通过 -cpu 参数改变 GOMAXPROCS,-cpu 支持传入一个列表作为参数,例如:3、第二列参数指的是用例执行的次数 ,第三列指的是没次花费时间,第四列指的是分配多少内存,第五列指的是分配了几次内存由上面的结论可知......

2022-07-02 18:33:14 706

原创 Slice扩容相关知识

go语言中slice切片的扩容知识

2022-06-05 17:22:17 529

原创 Go学习笔记《The Way to Go》

Go学习笔记《The Way to Go》,go语言新人,好好加油呀

2022-06-05 00:24:16 460

原创 对象相等判断

== 和 equals 的区别是什么== : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同 一个对象。(基本数据类型 == 比较的是值,引用数据类型 == 比较的是内存地址)equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况: 情况1:类没有覆盖 equals() 方法。则通过equals() 比较该类的两个对象时, 等价于通过“==”比较这两个对象。情况2:类覆盖了 equals() 方法。一般,我们都覆盖 equals() 方法来两个对象 的内

2022-05-02 17:23:38 1138

原创 数据库优化

代码逻辑方面1、尽量不要在数据库做运算;复杂运算移动到程序断CPU;尽可能简单应用MySQL举反例:md5/Order by Rand()2、控制表单数据量一年内的表单数据量预估:纯INT不超过1000W; 含CHAR不超过500W合理分表不超载:USERID、DATE、AREA…建议单库不超过300-400个表3、保持表单身段苗条表字段数少而精:IO高效;全表遍历;表修复快;提高并发;alter table快4、拒绝3B字段方面索引建立方面SQL方面..

2022-05-01 20:44:52 614

原创 RabbitMQ 原理相关

一、为什么使用RabbitMqRabbitMq是一个实现了AMQP(advanced Message Queuing Protocol)高级消息队列协议的消息队列服务,用erlang语言实现可靠性,RabbitMQ的持久化支持,保证消息的稳定性·;高并发高可用,RabbitMQ使用了Erlang开发语言,Erlang是为电话交换机开放的语言,本身具有高并发的优势集群部署简单,(Erlang功劳)使用频率较高二、RabbitMq工作机制生产者:消息的创建者,负责创建和推动数据到消息服务器;

2022-04-29 16:08:34 1030 3

原创 锁升级过程

锁升级过程:**无锁-》偏向锁-》轻量级锁-》重量级锁**

2022-04-28 17:13:08 694

原创 Linux ps命令

1、ps命令的使用ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义-A 列出所有的进程-w 显示加宽可以显示较多的资讯-au 显示较详细的资讯-aux 显示所有包含其他使用者的行程2、查找指定进程格式:ps -ef | grep 进程关键字例如显示 php 的进程:ps -ef | grep php显示进程信息:ps -A显示指定用户信息ps -u root //显示root进程用户信息显示所有进程信息,连同命令行ps -ef //显示所有命令,连带命令行2、

2022-04-28 14:08:25 734

原创 数据库基础(Mysql)

1、Mysql数据库索引设置索引分类:(1)普通索引(Normal):一般来讲对于普通的查询想要提升在大量数据中的查询可以建立普通索引(2)Unique 唯一索引表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique。约束唯一标识数据库表中的每一条记录,即在单表中不能用每条记录是唯一的(例如身份证就是唯一的),Unique(要求列唯一)和Primary Key(primary key = unique + not null 列唯一)约束均为列或列集合

2022-04-22 20:12:13 107

原创 Java基础2(待完善)

Java基础

2022-04-22 12:09:00 931

原创 CountDownLatch记录详细文章推荐

1、文章一:https://www.jianshu.com/p/1284760159022、文章二:https://blog.csdn.net/hbtj_1216/article/details/109655995

2022-04-15 11:09:26 97

原创 Reflection的getCallerClass使用

Reflection的getCallerClass

2022-04-15 10:17:54 1165

原创 JUC原子类

JUC中的原子类介绍介绍基本类型原子类介绍数组类型原子类介绍引用类型原子类介绍对象属性修改相关原子类

2022-04-13 17:04:52 335

原创 AQS原理

一、AQS(AbstractQueuedSynchronizer)AQS概念:Java的并发工具包JUC下locks包内的一个类。主要思想:FIFO(先进先出队列)实现算法:CLH队列算法底层数据结构:双项链表二、CLH锁CLH是一种基于单向链表的高性能、公平的自旋锁。1、申请加锁的线程通过前驱节点的变量进行自旋。2、在前置节点解锁后,当前节点会结束自旋,并进行加锁。3、在SMP架构下,CLH更具有优势。在NUMA架构下,如果当前节点与前驱节点不在同一CPU模块下,跨CPU模块会带来额

2022-04-13 16:30:33 8343

原创 问题记录:注解@RequestBody(required =“false“)

@RequestBody

2022-04-12 17:35:17 10614

原创 开发记录:一般通用的基础的父类(业务对象继承的基础)必备字段

1一般基础类必备字段//创建人String createBy//更新人String updateBy//创建时间Date createTime//更新时间Date updateTime//搜索值(模糊搜索时候用到)String searchContent//备注String remark2一般继承的子类用到(逻辑删除)会加一个标记删除字段Integer deFlag(deleteFlag的意思)3导出功能时候字段用@Excel(name = “仓库地点”,sort = 9)

2022-04-12 17:15:14 121

原创 虚拟机参数

jconsole:终端查看图形化内存、线程、类信息使用情况jps能够查看当前正在执行的进程的pidjps -l查看当前运行主类jps -m 查看当前运行的加载的参数jps -v查看虚拟机参数jps -mlv 查看所有参数jstat -gcutil pid(ps:pid当前进程id)看到内存占用情况;垃圾回收情况(S0 S1 E O…)(后面加个参数表示 多长时间执行一次)jinfo pid可以查看虚拟机使用的一些参数jmap 看一些堆内存的信息(可以下载下来)jstack -F pid

2022-03-27 22:19:26 1069

原创 多线程如何保证顺序执行:join()

Thread中,join()方法的作用是调用线程等待该线程完成后,才能继续用下运行有T1,T2,T3,怎样保证他们按照T1,T2,T3顺序执行public static void main(String[] args) throws InterruptedException { System.out.println("main start"); Thread t1 = new Thread(new Worker("thread-1")); t1.

2022-03-24 17:47:12 439

原创 面试问题:redis系列

memcached 与 redis 的区别?

2022-03-19 11:38:00 668

原创 今日分享 redis缓存

1、缓存穿透、缓存击穿、缓存雪崩区别和解决方案前台向后台请求数据,后台先从缓存中取到数据,如果取不到时,从数据库查询,如果数据库取到则更新到缓存并返回结果,如果数据库未找到,那直接返回空结果。- 缓存穿透:查询数据时候,缓存中和数据库均没有。但是用户不断的发起请求(此时可能是恶意攻击),攻击会导致数据库压力过大,甚至dawn机解决方案:1、增加接口校验,如用户鉴权校验,id做基础校验将异常的请求直接拦截2、从缓存中取数据,在数据库中也没有取到,这时候将键值对的value值设置成null并

2022-03-17 16:54:14 775

原创 微服务:注册中心的作用

1、为什么需要服务注册中心微服务时代的服务管理在微服务时代,我们所有的服务都被劲量拆分成最小的粒度,原先所有的服务都在混在1个server里,现在就被按照功能或者对象拆分成N个服务模块,这样做的好处是深度解耦,1个模块只负责自己的事情就好,能够实现快速的迭代更新。坏处就是服务的管理和控制变得异常的复杂和繁琐,人工维护难度变大。还有排查问题和性能变差(服务调用时的网络开销)2、什么是注册中心?注册中心的作用一句话概括就是存放和调度服务,实现服务和注册中心,服务和服务之间的相互通信。注册中心可以说是微服

2022-03-17 15:28:55 16922

原创 Linux常用命令

tar -zxvf 文件名 (解压命令)unzip zipFileNamesudo apt-get install 安装的东西unrar rarFileName(解压rar文件)unrar 原目录文件夹 目标文件夹ls 查看文件夹cd 名字 (进入指定文件夹)rm -rf 目标文件 (删除文件)mkdir 文件名(创建文件夹)vim 文件名(打开文件)i (可插入可编辑)kill 端口号(杀死一个进程)ifconfig 查看网络IP地址history (查看之前历史命令)pwd

2022-03-02 21:45:06 378

原创 【链表】:两两交换链表中的节点(LeetCode)

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)

2022-01-19 08:07:05 154

原创 【LeetCode】轮转数组

给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

2022-01-17 22:36:59 122

转载 实现日期是周几的判断

题意及分析给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天方法一 蔡勒公式蔡勒公式我想有不少同学都了解过,一般刚学编程时候会介绍这个公式,但应该没有人专门背下来。这里做个记录;其中:c 是世纪数减一,也就是年份的前两位。y 是年份的后两位。m 是月份。m 的取值范围是 3 至 14,因为某年的 1、2 月要看作上一年的 13、14月,比如 2019 年的 1 月 1 日要看作 2018 年的 13 月 1 日来计算。d 是该月第几天。[] 代表对计算结果向下取整,只保留整数部分

2022-01-06 09:13:51 944

原创 <LeetCode>链表题汇总

链表翻转链表部分翻转合并链表旋转链表

2022-01-05 14:00:28 372 4

原创 UNION 连表查询注意点

sql:union联表查询相应字段

2021-12-23 14:46:26 589

原创 用同一组时间选择器 查询两个字段的时间段

用一组startTime、endTime 查询两个字段的时间段(记得跟前端沟通)<if test="startTime != null and searchTimeType = '1'.toString()"><!-- 开始时间检索 --> and date_format(applicate_time,'%y%m%d') &gt; date_format(#{startTime},'%y%m%d') </if

2021-12-21 14:44:06 386

原创 LocalDateTime与Date相互转换

LocalDateTime 转 DateLocalDateTime localDateTime=LocalDateTime.now()Date date = Date.from(localDateTime.atZone( ZoneId.systemDefault()).toInstant());Date 转 LocalDateTimeDate startDate=new Date();LocalDateTime localDateTime = startDate.toInstant()

2021-12-16 19:22:27 1460 2

原创 uml结构图(凑数篇)

2021-12-16 13:48:25 209 1

原创 重点内容JVM(Java内存)

面试重点内容:java内存,堆内存(新生代/老年代)、survivor区(8:1:1),内存溢出,内存泄漏

2021-12-16 08:17:07 430 1

原创 @ApiOperation注解

@ApiOperation是swagger里的@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”;其他参数可参考源码;

2021-12-11 15:35:11 245

空空如也

空空如也

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

TA关注的人

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