自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RocketMQ快速入门

RocketMQ基本入门

2024-01-04 21:56:05 1409 1

原创 性能指标与压测

金融行业:1000tps~50000tps,不包括互联网化的活动。保险行业:100tps~100000tps,不包括互联网化活动。互联网电子商务:10000tps~1000000tps。互联网中型网站: 1000tps~50000tps。: 指用户发出请求或者指令到系统做出反应(响应)的最大时间。: 指用户发出请求或者指令到系统做出反应(响应)的最少时间。互联网小型网站:500tps~10000tps。是指所有用户的响应时间进行排序,第90%的响应时间。制造行业:10tps~5000tps。

2023-08-22 18:24:38 262

原创 SpringCloudGateWay+nacos+redis+springsecurity实现多微服务统一授权认证

之前做的大部分都是基于单体的springboot项目,对于权限这一块直接套用springsecurity就可以搞定了但是现在随着微服务分布式架构的流行,越来越多的项目都拆解成一个个的微服务,因此需要重构权限这一块,这里我采用的是在网关gateway层进行认证授权,根据认证结果以及角色来判断是否放行该请求:大致围绕下面三个需求:项目结构如图所示:登录认证授权等主要采用Spring security + redis+token机制,那么得首先配置WebSecurityConfig,这里看到的redis配置主要是

2023-05-30 09:52:27 3551 4

原创 WebSocket入门

websocket是一种网络通信协议,RFC6455定义了它的通信标准websocket是Html5开始提供的一种在单个TCP连接上进行全双工通讯的协议Http协议是一种无状态、无连接、单向的应用层协议,它采用了请求/响应模型,通信请求只能有客户端发起,服务端对请求做出应答处理这种通信模型有一个弊端: http协议无法实现服务器主动向客户端发送消息。

2023-04-23 22:10:49 1741 1

原创 SpringBoot整合minio实现对象存储

关于纠删码,简单来说就是可以通过数学计算,把丢失的数据进行还原,它可以将n份原始数据,增加m份数据,并能通过n+m份中的任意n份数据,还原为原始数据。即如果有任意小于等于m份的数据失效,仍然能通过剩下的数据还原出来。文件对象上传到minio,会在对应的数据存储磁盘中,以Bucket名称为目录,文件名称为下一级目录,文件名下是part.1和xl,meta,前者是编码数据块及校验块,后者是元数据文件。Drive:即存储数据的磁盘,在Minio启动时,以参数的方式传入。1.拉取docker镜像。

2023-04-18 10:11:19 582

原创 SpringBoot-心跳机制+redis实现网站实时在线人数统计

4.一般在前后分离项目中,都是有统一返回数据格式的,以及一些项目通用配置。有时候我们需要在响应流中设置返回数据,因此有如下工具类。可以看到成功访问了,并且该用户的token会一直续期。3.定义一个类,用户统计用户的在线人数等操作。1.新建sp项目,导入如下pom.xml。用户登录机制时序图如下。redis序列化配置。

2023-04-12 15:54:17 4725 5

原创 SpringCloud&alibaba微服务工具集

微服务架构

2023-04-10 15:49:54 1613

原创 Spring框架入门到开发

1.Spring简介​ Spring是一个开源框架,它由[Rod Johnson](https://baike.baidu.com/item/Rod Johnson)创建。它是为了解决企业应用开发的复杂性而创建的。​ 目前是JavaEE开发的灵魂框架。他可以简化JavaEE开发,可以非常方便整合其他框架,无侵入的进行功能增强。​ Spring的核心就是 控制反转(IoC)和面向切面(AOP) 。2.IOC控制反转2.1 概念​ 控制反转,之前对象的控制权在类手上,现在反转后到了Spring

2023-04-07 12:23:50 489

原创 SpringBoot入门

​ 浏览器出于安全的考虑,使用 XMLHttpRequest对象发起 HTTP请求时必须遵守同源策略,否则就是跨域的HTTP请求,默认情况下是被禁止的。同源策略要求源相同才能正常进行通信,即协议、域名、端口号都完全一致。​ 定义异常处理方法,使用**@ExceptionHandler**标识可以处理的异常。//获取异常信息,存放如ResponseResult的msg属性 String message = e . getMessage();

2023-04-02 13:47:32 753 1

原创 Mybatis入门

MyBatis 是一款优秀的持久层框架。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。mybatis官网​ 建议如果只有一个参数的时候不用做什么特殊处理。如果是有多个参数的情况下一定要加上@Param来设置参数名。

2023-03-27 10:56:42 591

原创 线上CPU飙高诊断定位

cpu飙升诊断排查

2023-02-09 15:33:47 618

原创 Redis实现点赞、关注、取top榜单实现

redis实现社交场景点赞关注

2022-12-07 17:43:27 1707

原创 一文学会SpringSecurity权限框架

springsecurity权限框架实现认证授权

2022-11-20 20:59:14 1206

转载 InnoDB中的页合并与分裂

数据存储结构

2022-11-04 16:04:28 255

原创 Mybatis-plus入门

mybatisplus

2022-11-03 17:29:57 2823

原创 Springboot项目常用工具类

json转换工具类

2022-08-18 11:28:43 3408

原创 SQL性能分析与优化

sql性能分析与优化

2022-07-03 11:33:10 411

原创 链表、栈、队列

基础数据结构

2022-06-27 18:01:53 706

原创 JVM类和spring Bean的实例化和初始化区别以及顺序

spring bean的实例化及初始化

2022-06-27 17:34:50 421

原创 poi实现表格合并单元格并设计样式

表格导出

2022-06-10 11:33:49 1016

原创 使用线程池与foreach批量优化一次插入万级以上数据

多线程提高mybati插入效率

2022-06-01 16:43:05 1827 1

原创 MYSQL中redo log和binlog之间的区别

参考 编程客栈假设读者这里已经对于mysql的底层有了一定了解,知道一条sql语句的大致执行流程,再来阅读此文章效果可能会更好redo log:InnoDB 存储引擎层方面的日志,所以如果你使用的存储引擎不是 InnoDB 的话,那就根本谈不上 redo log。bin log: MySQL Server 层记录的日志,所以不管是用的什么存储引擎,只要是 MySQL 都是会有 binlog 的存在,在做 MySQL 主从复制的时候,利用的就是 binlog。接下来,我们就详细来看看它们都分别做了啥?

2022-05-30 10:11:48 2736

原创 MySQL常用函数及设计三范式

MySQL数据库中提供了很丰富的函数,比如我们常用的聚合函数,日期及字符串处理函数等。SELECT语句及其条件表达式都可以使用这些函数,函数可以帮助用户更加方便的处理表中的数据,使MySQL数据库的功能更加强大。本篇文章主要为大家介绍几类常用函数的用法:一、聚合函数聚合函数是平时比较常用的一类函数,这里列举如下:COUNT(col) : 统计查询结果的行数MIN(col): 查询指定列的最小值MAX(col): 查询指定列的最大值SUM(col): 求和,返回指定列的总和AVG(col):

2022-05-27 23:46:09 366

原创 IO多路复用及Redis网络模型

用户空间和内核空间目前市面上服务器大多数都采用Linux系统,这里以Linux来简单描述在任何的Linux发行版,其系统内核都是Linux,我们的应用都需要通过Linux内核与硬件交互为了避免用户应用与内核发生冲突,用户应用与内核是分离的:进程的寻址空间会划分为两部分:内核空间、用户空间用户空间只能执行受限的命令(Ring3),而且不能直接调用系统资源,必须通过内核提供的接口来访问内核空间可以执行特权命令(Ring0),调用一切系统资源Linux系统为了提高IO效率,会在用户空间和内

2022-05-08 22:47:28 994

原创 日期工具类

import java.math.BigDecimal;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.*;public class DateUtil { /** * 时间戳转换成日期格式字符串 * * @param seconds 精确到秒的字符串 * @param format * @return */ publ

2022-05-06 09:52:02 426

原创 StringRedisTemplate

StringRedisTemplate继承自RedisTemplate,在这里说明一下,当我们使用RedisTemplate往redis中存储java对象的时候,他会顺带着将该java对象的字节码文件也同时存进了内存中,这是为了实现自动反序列化尽管JSON的序列化方式可以满足我们的需求,但是仍然存在一些问题,如上图所示,为了在反序列化时知道对象的类型,JSON序列化器会将类的class类型写入json结果中,存入Redis,会带来额外的内存开销。在使用RedisTemplate是一般我们都会使用自定义

2022-04-30 23:14:22 19140 1

原创 多线程在项目中的应用

1.发短信发短信的场景有很多,比如手机号+验证码登录注册,电影票买完之后会发送取票码,发货之后会有物流信息,支付之后银行发的付款信息,电力系统的电费预警信息等等在这些业务场景中,有一个特征,那就是主业务可以和短信业务割裂,比如手机号+验证码登陆,当我们点击获取验证码的时候,会连接短信业务平台发送短信,但是发短信这个业务受到短信平台的影响,可能会存在一定时间的延时,但是我们不一定非要等短信平台返回之后,再给用户返回,我们可以先返回获取验证码成功的提升样式,将发短信的业务放入到另外一个线程中执行,用户晚一会

2022-04-09 00:04:07 8978 1

原创 Explain执行计划分析

explain之sql执行计划分析执行计划的extra字段---- using where , using index 和 using where & using index 整理执行计划的extra字段---- using where , using index 和 using where & using index 整理

2022-03-29 12:05:14 260

原创 Spring核心思想(一)

注意: IOC和AOP不是spring框架提出来的,在spring框架之前就已经有了,只不过更偏向于理论化,spring在技术层面上把这两个思想做了非常好的实现(Java)1.什么是IOC?   IoC Inversion of Control (控制反转/反转控制) 注意他是一个思想,不是一个技术实现   描述的事情:Java开发领域对象的创建、管理问题   传统的开发方式:比如类A依赖于类B,往往会在类A中new一个类B的对象   IOC思想下的开发方式:我们不用自己去new对象了,而是由I

2022-03-19 18:18:20 529

原创 Java变量存放地址

java中变量的存放地址详解

2022-03-14 11:24:37 906

原创 mysql - 覆盖索引和联合索引

原文连接地址: mysql - 覆盖索引和联合索引这里创建一个用户表,在name字段上建立单一索引,因此该索引为非聚簇索引create table t_user (2 id bigint(20) not null auto_increment ,3 name varchar(255) not null,4 primary key (id),5 index index_name (name) using btree)6 engine=innodb7 default character set=

2022-02-14 15:03:54 596

原创 MySQL中decimal类型用法的简单介绍

MySQL中decimal类型用法的简单介绍

2022-02-09 16:00:17 861

原创 ConcurrentHashMap随笔

线程安全集合类概述线程安全集合类可以分为三大类:遗留的线程安全集合如Hashtable,Vector使用Collections装饰的线程安全集合,如:Collections.synchronizedCollectionCollections.synchronizedListCollections.synchronizedMapCollections.synchronizedSetCollections.synchronizedNavigableMapCollections.sy

2022-01-22 17:05:12 507

原创 使用AQS实现一个不可重入独占锁

**AQS:**全程是AbstractQueuedSynchronizer,是一个阻塞式锁和相关的同步器工具的框架。其实AQS说白了就是一个可以给我们实现锁的框架,其内部是一个基于FIFO(先进先出)的队列,用state来代表锁的状态,0-没有获得锁,1-获得了锁,其内部定义了内部类ConditionObject特点用state属性来表示资源的状态,(state变量底层是被volatile修饰的),其拥有两种线程模式,独占模式和共享模式,子类需要定义如何维护这个状态,控制如何获取到锁以及如何释放锁,下

2022-01-08 22:59:32 399

原创 手动实现一个简易线程池记录

**假设此时读者已经对于线程池的的七大参数配置,核心线程数、最大线程数、阻塞队列拒绝策略已经有了一定的了解,那摩再看看这个代码可能会对你理解线程池的底层实现原理有一定的帮助自定义线程池+工作线程实现class ThreadPool{ // 任务队列 private BlockingQueue<Runnable> taskQueue; // 线程集合 private HashSet<Worker> workers = new HashSet

2022-01-02 18:46:48 384

原创 使用CAS实现自定义连接池

这里先说一下,假设读者已经对于CAS以及一些JDK8提供的原子类有了一定的了解,再阅读此代码或许会有一点收获。现在有个场景,一个线上的商城应用,QPS达到数千,如果每次都重新创建和关闭数据库连接,性能会受到极大的影响,这时候预先创建好一批连接,放入到连接池,一次请求到达后,从连接池获取连接,使用完毕之后在还回连接池,这样既节约了连接的创建和关闭时间,也实现了连接的重用,不至于让庞大的连接数压垮数据库,实现代码如下:1.自定义创建一个连接池对象/** * 自定义数据连接池 * */class

2021-12-26 18:40:28 517

原创 POI操作excel表格

在日常的公司业务需求中,经常需要接触到数据的导入导出,那摩就会借助很多第三方工具包,这里记录一下阿帕奇出品的poi,其使用场景有如下:将用户信息导出为excel表格(导出表格…)将Excel表中的信息录入到网站数据库(习题上传)大大减轻网站录入量操作Excel目前比较流行的就是ApachePOI和阿里巴巴的easyExcelPOI提供API给java程序对Microsoft Office格式档案读写功能基本功能HSSF – 提供读写MicroSoftExcel格式档案的功能XSSF –

2021-12-07 22:00:38 917

原创 十大排序算法总结

十大排序算法总结

2021-11-29 16:46:20 404

原创 MySQL之悲观锁场景举例

转载于:mysql的select … for update最近的项目中,因为涉及到Mysql数据中乐观锁和悲观锁的使用,所以结合项目和网上的知识点对乐观锁和悲观锁的知识进行总结。悲观锁介绍悲观锁是对数据被的修改持悲观态度(认为数据在被修改的时候一定会存在并发问题),因此在整个数据处理过程中将数据锁定。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在应用层中实现了加锁机制,也无法保证外部系统不会修改数据)。使用场景举例:商品goods表中

2021-11-27 12:59:33 608

原创 SpringBoot+Redis结合自定义注解实现接口防盗刷

一为什么会有人刷接口?我们知道,总有些人吃饱了没事干就喜欢到处搞破坏,就比如之前我得redis服务器没有设置密码就被某些孤儿攻击力了,因此现在接口安全一直是一个热门话题,比如有些黄牛党在12306网上抢票进行倒卖,还有些企业之间进行竞争去恶意攻击对方服务器,举个例子,比如某个短信接口被请求一次,会触发几分钱的运营商费用,可想而知,当某些懂点技术的狗写点脚本去疯狂冲击这个接口,那你的短信扣费就非常客观了。。。。还有一些人去疯狂请求你的服务器,导致服务器不断生成JessionId等从而导致服务器内存溢出,因

2021-11-26 17:30:47 1468

空空如也

空空如也

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

TA关注的人

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