自定义博客皮肤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 1270

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

@pathVariable: @requestBody @requestParam:

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

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

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

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

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

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

2021-12-15 09:35:00 2336 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 839 4

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

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

2021-12-09 22:55:11 1541

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

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

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

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

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

2022-07-25 15:31:14 1092

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

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

2022-07-02 18:33:14 809

原创 Slice扩容相关知识

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

2022-06-05 17:22:17 594

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

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

2022-06-05 00:24:16 509

原创 对象相等判断

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

2022-05-02 17:23:38 1219

原创 数据库优化

代码逻辑方面 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 666

原创 RabbitMQ 原理相关

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

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

原创 锁升级过程

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

2022-04-28 17:13:08 744

原创 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 769

原创 数据库基础(Mysql)

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

2022-04-22 20:12:13 155

原创 Java基础2(待完善)

Java基础

2022-04-22 12:09:00 970

原创 CountDownLatch记录详细文章推荐

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

2022-04-15 11:09:26 148

原创 Reflection的getCallerClass使用

Reflection的getCallerClass

2022-04-15 10:17:54 1238

原创 JUC原子类

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

2022-04-13 17:04:52 386

原创 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 8446

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

@RequestBody

2022-04-12 17:35:17 10837

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

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

2022-04-12 17:15:14 149

原创 虚拟机参数

jconsole:终端查看图形化内存、线程、类信息使用情况 jps能够查看当前正在执行的进程的pid jps -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 1098

原创 多线程如何保证顺序执行: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 479

原创 面试问题:redis系列

memcached 与 redis 的区别?

2022-03-19 11:38:00 710

原创 今日分享 redis缓存

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

2022-03-17 16:54:14 797

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

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

2022-03-17 15:28:55 17310

原创 Linux常用命令

tar -zxvf 文件名 (解压命令) unzip zipFileName sudo 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 400

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

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

2022-01-19 08:07:05 185

原创 【LeetCode】轮转数组

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

2022-01-17 22:36:59 149

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

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

2022-01-06 09:13:51 1027

原创 <LeetCode>链表题汇总

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

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

原创 UNION 连表查询注意点

sql:union联表查询相应字段

2021-12-23 14:46:26 640

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

用一组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 431

原创 LocalDateTime与Date相互转换

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

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

原创 uml结构图(凑数篇)

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

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

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

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

原创 @ApiOperation注解

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

2021-12-11 15:35:11 284

空空如也

空空如也

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

TA关注的人

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