自定义博客皮肤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)
  • 收藏
  • 关注

原创 springboot集成swager-ui2.0

springboot集成swager-ui

2024-04-03 11:40:22 96 1

原创 WebMvcConfig and LogInterceptor (请求参数转换、跨域等)

WebMvcConfig and LogInterceptor (请求参数转换、跨域等)

2024-04-03 11:32:08 92

原创 docker快速部署minio文件服务器,springboot整合minio

delete_model` int(1) DEFAULT '1' COMMENT '删除标识 1正常数据 0删除数据',`file_size` bigint(20) DEFAULT NULL COMMENT '文件大小(单位:字节)',`file_ext_name` varchar(15) DEFAULT NULL COMMENT '文件拓展名',`file_url` varchar(255) DEFAULT NULL COMMENT '文件路径',api访问地址为:IP:19000。

2023-05-23 18:16:14 629

原创 解决elasticsearch client的maven中httpclient版本冲突的问题

es冲突

2023-01-04 17:17:52 726

原创 5秒钟不允许重复保存 apo 切面

5秒钟不允许重复保存接口 apo 切面

2022-06-21 16:13:20 208

原创 spring boot 实体类字段非空校验

方案一://手机号if(StringUtils.isEmpty(user.getMobile())){ return Result.fail("添加用户时,手机号不能为空");}//角色if(CollectionUtils.isEmpty(user.getRoles())) { return Result.fail("添加用户时,角色信息不能为空");}方案二:1、实体类注解添加/* @NotNull 验证对象是否不为null, 无法查检长

2021-12-14 18:30:52 6181 1

原创 idea代码层级变化报红解决

今天本想挪动下文件,使项目更加可观,易整理,但是挪动后出现各种问题,import xxx;全部飘红。部分切面还出现Cannot access;试过了重启idea,rebuild....各种方法都行不通;最终!!!

2021-11-01 10:55:54 219

转载 docker 搭建maven私服企业开发平台

架构师成长之路-docker 搭建maven私服企业开发平台 - 知乎为什么要搭建maven私服平台?1,因为大企业和规范化的平台和数据安全比较高的企业都是在涉密桌面开发,或者局域网开发,maven私服是企业一个很重要的jar管理平台和方式。企业开发都有自己的jar管理平台,通常分为4个维度。本地快照仓库:本地项目测试快照环境本地Release仓库:本地仓库代理仓库:第三方仓库:阿里云,maven仓库组合仓库:统一管理本地快照仓库,本地Release仓库,代理仓库2,企业级开

2021-10-29 11:08:13 156

原创 idea demo引入本地jar编译不通过

Error:Maven Resources Compiler: Failed to copy 'XXX' to 'YYY': YYY (拒绝访问。)原因:lib包和src平级,resource读取不到解决:将lib放在src目录下

2021-10-14 10:30:16 536

原创 mybatis plus常用的QueryWrapper条件参数

setSqlSelect 设置 SELECT 查询字段 where WHERE 语句,拼接 + WHERE 条件 and AND 语句,拼接 + AND 字段=值 andNew AND 语句,拼接 + AND (字段=值) or OR 语句,拼接 + OR 字段=值 orNew OR 语句,拼接 + OR (字段=值) eq 等于= allEq 基于 map 内容等于= ne 不等于<> gt 大于&

2021-08-25 14:22:06 1122

转载 springboot文件上传下载

前言好久没有更新spring Boot 这个项目了。最近看了一下docker 的知识,后期打算将spring boot 和docker 结合起来。刚好最近有一个上传文件的工作呢,刚好就想起这个脚手架,将文件上传和下载整理进来。配置在application.properties 中增加上传文件存放的路径配置#文件上传目录file.upload.url=E:/testcontroller 层上传文件和下载文件都比较简单,我们就直接在controller层来编写。也不用在pom.xm

2021-06-18 11:27:05 254

转载 docker常用命令

1、docker ps 列出部署的服务2、docker logs -f基础操作:1docker images查看镜像信息列表 镜像是静态的2docker ps -a查看运行中的所有容器3docker pull [images]:[version]从dockerhub拉取指定镜像4docker run -p 8000:80 -tdi --privileged [imageID][command]后台启动docker,并指定宿主机端口和docker映射端口。-i...

2021-06-07 16:35:58 99

原创 Kafka学习之怎么保证不丢,不重复消费数据

Kafka作为当下流行的高并发消息中间件,大量用于数据采集,实时处理等场景,我们在享受它带来的高并发,高可靠等便利时,同时不得不面对可能存在的问题,最常见的就是丢包,重发问题。1. 丢包问题1.1 问题描述所谓丢包一般是指发送方发送的数据未到达接收方. 常见的丢包可能发生在发送端, 网络,接收端.例如,消息推送服务,每天早上,手机上各终端都会给用户推送消息,这时候流量剧增,可能会出现kafka发送数据过快,导致服务器网卡爆满,或者磁盘处于繁忙状态,可能会出现丢包现象。1.2 问题解决解决方

2021-05-10 19:23:46 466

原创 HBASE读写数据流程

一 写数据流程1)Client先访问zookeeper,获取hbase:meta表位于哪个RegionServer。2)访问对应的RegionServer,获取hbase:meta表,根据读请求的namespace:table/rowkey,查询出目标数据位于哪个RegionServer中的哪个Region中。并将该table的region信息以及meta表的位置信息缓存在客户端的metacache,方便下次访问。3)与目标RegionServer进行通讯;4)将数据顺序写入(追加)到WAL;5

2021-04-21 14:32:13 170

原创 数仓分层概述

概述数仓分层是数据仓库设计中十分重要的一个环节,优秀的分层设计能够让整个数据体系更容易理解和使用。数据分层的作用我们需要一套行之有效的数据组织和管理方法来让我们的数据体系更有序,这就是数据分层。数据分层的好处有。①,清晰数据结构:每一个数据分层都有它的作用域和职责,在使用表的时候能更方便地定位和理解。②,减少重复开发:规范数据分层,开发一些通用的中间层数据,能减少极大的重复计算。③,统一数据口径:通过数据分层提供统一的数据出口,同意对外输出的数据口径。④,复杂问题简单化:将一.

2021-04-21 10:33:27 924

原创 最新Hive/Hadoop高频面试点小集合

Hive部分:1、Hive的两张表关联,使用MapReduce怎么实现?如果其中有一张表为小表,直接使用map端join的方式(map端加载小表)进行聚合。如果两张都是大表,那么采用联合key,联合key的第一个组成部分是join on中的公共字段,第二部分是一个flag,0代表表A,1代表表B,由此让Reduce区分客户信息和订单信息;在Mapper中同时处理两张表的信息,将join on公共字段相同的数据划分到同一个分区中,进而传递到一个Reduce中,然后在Reduce中实现聚合。.

2021-04-15 14:16:22 279

原创 主流消息队列对比

为什么使用消息队列?消息队列的优点和缺点?kafka、activemq、rabbitmq、rocketmq都有什么优缺点?面试官角度分析:(1)你知不知道你们系统里为什么要用消息队列这个东西?(2)既然用了消息队列这个东西,你知不知道用了有什么好处?(3)既然你用了MQ,那么当时为什么选用这一款MQ?1. 为什么使用消息队列?面试官问这个问题的期望之一的回答是,你们公司有什么业务场景,这个业务场景有什么技术挑战,如果不用MQ可能会很麻烦,但是再用了之后带来了很多好处。消息队列的常

2021-04-15 14:01:22 615

原创 线上服务平均响应时间太长排查

最近线上环境某个接口服务响应时间偏长,导致用户体验超差,那平时该怎么快速的排查这类问题呢?①、为代码添加上详细的打印日志;不建议,一是线上环境,没法随便的重新部署更换了详细日志的代码,二是 添加详细的日志输出,那就意味这会生成大量的日志文件,这些日志文件会占据大量服务器磁盘空间。②、搭建一个模拟了线上环境的测试环境进行复盘排查;额,出现了这种问题哪有那么多的时间让你进行环境复盘排查,所以此方案也是不建议的。③、线上诊断神器Arthas,这个工具是阿里开源的,专门用于线上环境问题排查的,这...

2021-04-15 13:57:10 251

原创 java多线程使用场景

多线程使用的主要目的在于:1、吞吐量:你做WEB,容器帮你做了多线程,但是他只能帮你做请求层面的。简单的说,可能就是一个请求一个线程。或多个请求一个线程。如果是单线程,那同时只能处理一个用户的请求。2、伸缩性:也就是说,你可以通过增加CPU核数来提升性能。如果是单线程,那程序执行到死也就利用了单核,肯定没办法通过增加CPU核数来提升性能。鉴于是做WEB的,第1点可能你几乎不涉及。那这里我就讲第二点吧。举个简单的例子:假设有个请求,这个请求服务端的处理需要执行3个很缓慢的IO操作(比如数据

2021-04-15 10:25:28 264

原创 java常用八大排序

1.直接插入排序经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列。 对第四个数、第五个数……直到最后一个数,重复第二步。 如何写成代码: 首先设定插入次数,即循环次数,for(int i=1;i<length;i++),1个数的那次不用插入。 设定插入数和得到已经排好序列的最后一个数的位数。insertNum和j=i-1。 从最后一

2021-04-15 10:15:43 126

原创 Spring的 IOC 容器与New对象比较

ioc的思想最核心的地方在于,资源不由使用资源的双方管理,而由不使用资源的第三方管理,这可以带来很多好处。 资源集中管理,实现资源的可配置和易管理。 降低了使用资源双方的依赖程度,也就是我们说的耦合度。 也就是说,甲方要达成某种目的不需要直接依赖乙方,它只需要达到的目的告诉第三方机构就可以了,比如甲方需要一双袜子,而乙方它卖一双袜子,它要把袜子卖出去,并不需要自己去直接找到一个卖家来完成袜子的卖出。它也只需要找第三方,告诉别人我要卖一双袜子。这下好了,甲乙双方进行交易活动,都不需要自

2021-04-15 10:02:24 996 1

原创 Redis实现电商系统的库存扣减

在日常开发中有很多地方都有类似扣减库存的操作,比如电商系统中的商品库存,抽奖系统中的奖品库存等。解决方案 使用mysql数据库,使用一个字段来存储库存,每次扣减库存去更新这个字段。 还是使用数据库,但是将库存分层多份存到多条记录里面,扣减库存的时候路由一下,这样子增大了并发量,但是还是避免不了大量的去访问数据库来更新库存。 将库存放到redis使用redis的incrby特性来扣减库存。 分析在上面的第一种和第二种方式都是基于数据来扣减库存。基于数据库单库存第一

2021-04-15 09:45:45 875

原创 Java异常概述

Java异常简介Java异常是Java提供的一种识别及响应错误的一致性机制。Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪”抛出,异常信息回答了“为什么”会抛出。Java异常架构1. ThrowableThrowable 是 Java 语言中所有错误与异常的超类。Throwable 包含两个

2021-04-15 09:01:21 131

原创 sql优化

表结构优化:1、根据自己的业务选择合适的引擎2、表设计时尽量符合第三范式第一范式:表的列的具有原子性,不可再分解,即列的信息,不能分解, 只有数据库是关系型数据库就自动的满足。第二范式:表中的记录是唯一的, 就满足第二范式, 通常我们设计一个主键来实现第三范式:表中不要有冗余数据, 即表的信息,如果能够被推导出来,就不应该单独的设计一个字段来存放.为什么说尽量符合? 因为有些系统为了提高运行效率,就必须降低范式标准,适当保留冗余数据。3、表的字段尽可能使用NOT NULL4、

2021-04-13 10:30:32 47

原创 mysql隔离级别

四种数据库隔离级别:READ UNCOMMITED(未提交读):​ 在 READ UNCOMMITED 级别,事务中的修改,即使没有提交,对其他事务也是可见的。事务可以读取未提交的数据,这也被称为脏读(Dirty Read)。这个级别会导致很多问题,从性能上来说,READ UNCOMMITED 不会比其他的级别好太多,但却缺少其他级别的很多好处,除非真的有非常必要的理由,在实际应用中一般很少使用。READ COMMITED(提交读):​ 大多数数据库系统的默认隔离级别都是 READ COMM

2021-04-12 15:58:22 53

原创 缓存常见三大问题

缓存常见三大问题简单说明开始1、缓存穿透2、缓存并发3、缓存雪崩开始缓存穿透、缓存并发、缓存雪崩常见的由于并发量大而导致。缓存穿透:恶意攻击或者无意造成缓存并发:设计不足缓存雪崩:缓存同时失效造成1、缓存穿透说明:缓存穿透指的是使用不存在的key进行大量的高并发查询,这导致缓存无法命中,每次请求都要穿透到后端数据库系统进行查询,使数据库压力过大,甚至使数据库服务被压死。解决:我们通常将空值缓存起来,再次接收到同样的查询请求时,若命中缓存并且值为空,就会直接返回,不会透

2021-04-12 15:40:50 144

原创 分布式系统个人理解

分布式系统:分的微小服务,以小而独立的业务为单位,形成子系统。然后分布式系统中需要有统一的调用,形成大的聚合服务。同时,微服务群,需要有交流(通讯,注册中心,同步,异步),有管理(监控,调度)。对外服务,需要有控制的对外开发,安全网关。...

2021-04-12 15:29:22 71

原创 Java 内存模型(Java Memory Model)——深入理解Java虚拟机

一、基本概念Java 内存模型(Java Memory Model,JMM)试图屏蔽各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一直的内存访问效果。定义 Java 内存模型,并不是一件容易的事情:需要足够严谨,让 Java 的并发内存访问操作不会产生歧义;同时,需要足够宽松,使得虚拟机的实现能有足够的自由空间去理用硬件的各种特性。Java 内存模型的主要目的是定义程序中各种变量的访问规则,即关注在虚拟机中把变量值储存到内存和从内存中取出变量值这样的底层细节。主

2021-04-12 15:13:14 122

原创 spring事务相关

spring事务事务是逻辑处理原子性的保证手段,通过使用事务控制,可以极大的避免出现逻辑处理失败导致的脏数据等问题。事务最重要的两个特性,是事务的传播级别和数据隔离级别。传播级别定义的是事务的控制范围,事务隔离级别定义的是事务在数据库读写方面的控制范围。事务的7种传播级别:1) PROPAGATION_REQUIRED ,默认的spring事务传播级别,使用该级别的特点是,如果上下文中已经存在事务,那么就加入到事务中执行,如果当前上下文中不存在事务,则新建事务执行。所以这个级别通..

2021-04-12 10:21:42 69

原创 idea集成svn

1.安装svn客户端之前用myEcplise只需要插件,现在IDEA需要先下载客户端:TortoiseSVN(小乌龟),下载后安装 ,然后记住安装路径,我安装的是64位的。TortoiseSVN的下载地址 :https://tortoisesvn.net/downloads.html下载完成之后然后开始运行安装svn在勾选之前记得要安装改路径,例:F:\svnClient点击打叉项旁边的展开三角,选择第一个,点击确认,之后便是如图:在安装svn客户端的时候一定要勾选,否则在idea上集成sv.

2020-10-15 10:16:03 874

空空如也

空空如也

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

TA关注的人

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