自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Whales.Market已经上了grass,你们还不上车吗

2024最火的零撸项目,grass小草

2024-01-16 16:02:50 1355

原创 sharding-jdbc分库分表(一)

sharding-jdbc 分库分表

2022-12-05 16:51:37 1508 1

原创 java异步调用处理高并发web应用性能问题

异步调用

2022-09-04 00:13:40 277

原创 oracle 锁表处理

oracle

2022-09-02 11:40:53 163

原创 easyexcel 导出excal文件名乱码解决

导出excal文件名乱码解决

2022-08-09 15:05:38 5755 1

原创 java常见面试问题(四)

一、SpringMVC执行流程1、用户发送一个请求过来,DispatcherServlet接收到请求后,将请求信息交给处理器映射器(HandlerMapping)2、HandlerMapping根据用户的Url请求,查找匹配url的Handler,并返回一个执行链3、DispatcherServlet再请求处理适配器(HandlderAdpter)调用相应的Handler进行处理并返回ModelAndView给DisPatcherServlet4、DispatcherServlet将M.

2021-10-20 22:18:44 682 2

原创 java常见面试问题(三)

一、什么是缓存穿透?缓存击穿?缓存雪崩?怎么解决?1、缓存穿透:缓存中查不到,数据库也查不到。解决方式:方式1、对参数进行合法性校验。方式2、将数据库中没有查到结果的数据也写入缓存。这时要注意为防止Redis被无用Key占满,这一类缓存的有效期要设置得短一点。方式3、引入布隆过滤器,在访问Redis之前判断数据是否存在。要注意布隆过滤器存在一定的误判,并且布隆过滤器只能加数据不能减数据。2、缓存击穿?缓存中没有,数据库中有。一般是出现在存数据初始化以及Key过期了的情况。他的问题在于

2021-10-19 22:28:20 141

原创 java常见面试问题(二)

1、java内存模型?1、程序计数器;是一块较小的内存的空间,它作用可以看作是当前线程所执行字节码的行号指标器。如果线程正在执行的是一个java方法,这个计数器记录的是正在执行虚拟机字节码指令地址,如果正在执行的是Natvice方法(非java代码实现的方法)这个计数器值则为空。2、java虚拟机栈;与程序计数器,java虚拟机栈也是线程私有的,它的生命周期与线程相同。每个方法被执行的时候都会同时创建一个栈帧,用于存储局部变量,操作栈,动态链接,方法出口等信息。3、本地方法栈;与虚拟机栈所发挥的

2021-10-18 22:25:22 168

原创 java面试常见问题(一)

一、java如何开启线程?怎么保证线程安全?答:线程与进程的区别:进程是操作系统进行资源分配的最小单元。线程是操作系统进行任务分配的最小单元,线程隶属于进程。如何开启线程?1、继承Tread类,重写run方法。2、实现Runnable接口,实现run方法。3、实现Callable接口,实现call方法。通过FuTureTask创建一个线程,获取到线程执行的返回值。4、通过线程池来开启线程。怎么保证线程安全?加锁:1、jvm提供的锁,也就是Synchronized关键字。2.JDK提供的各种锁Lo

2021-10-16 00:08:03 135

原创 缓存与数据库双写不一致的问题及解决方式

一般而言,我们在更新数据库时会把redis的值删除掉,然后第一次查询时从数据库查询并且更新到redis中。但从数据库查询然后更新到redis中这并不是原子操作,可能出现并发问题。问题描述:当线程1正常更新数据库并删除redis的数据 ,在线程2第一次查询时,线程3更新数据并删除redis的数据,这时线程2才执行到更新redis,就会出现数据库与缓存双写不一致的问题。使用redisson读写锁来解决@RequestMapping("/getStock") public Strin

2021-10-15 15:59:12 312

原创 redis与redisson实现分布锁的两种方式

redis实现方式:package cn.ping.redislock.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframework.web.bind.annotation.GetMapping;import org.springf

2021-10-13 18:00:42 154

原创 shiro使用md5加盐加密认证与授权

数据表user:maven配置:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apa

2021-10-07 23:50:30 217

原创 引用别人的sql优化总结

https://www.cnblogs.com/yunfeifei/p/3850440.html

2021-07-02 10:58:14 71

原创 高并发编程学习笔记(一)之线程基础

基础概念CPU核心数和线程数的关系核心数:线程数=1:1 ;使用了超线程技术后—> 1:2CPU时间片轮转机制(RR调度)由操作系统控制,会导致上下文切换,花费5~2万时钟周期。什么是进程和线程进程:程序运行资源分配的最小单位,进程内部有多个线程,会共享这个进程的资源线程:CPU调度的最小单位,必须依赖进程而存在。澄清并行和并发并行:同一时刻,可以同时处理事情的能力并发:与单位时间相关,在单位时间内可以处理事情的能力高并发编程的意义、好处和注意事项好处:充分利用cpu的资源、

2020-07-14 09:08:40 120

原创 springMVC上传文件名乱码解决

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="UTF-8" 因为默认是iso编码 p:maxUploadSize="5400000"></bean>

2020-07-05 13:16:31 540

原创 通过Spring Data ElasticSearch 来使用ElasticSearch

通过一个小案例来学习Spring Data ElasticSearch创建一个Spring Boot工程pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.

2020-06-30 15:02:16 6959

原创 使用kibana来操作ElasticSearch(二)

聚合aggregations聚合可以让我们极其方便的实现对数据的统计、分析。例如:什么品牌的手机最受欢迎?这些手机的平均价格、最高价格、最低价格?这些手机每月的销售情况如何?实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现实时搜索效果。基本概念Elasticsearch中的聚合,包含多种类型,最常用的两种,一个叫桶,一个叫度量:桶(bucket)桶的作用,是按照某种方式对数据进行分组,每一组数据在ES中称为一个桶,例如我们根据国籍对人划分,可以得到中国桶、

2020-06-29 18:26:21 231

原创 使用kibana来操作ElasticSearch(一)

.基本概念Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。对比关系:索引(indices)--------------------------------Databases 数据库类型(type)-----------------------------Table 数据表 文档(Document)----------------Row 行 字段(Field)-------------------Columns 列 概念说明:索

2020-06-29 17:42:01 2784

原创 使用poi工具类导出数据到excel表(解决ajax提交无法下载的问题)

maven: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </dependency> <dependency>

2020-06-28 18:05:42 1509

原创 分布式事务解决方案之2PC协议的两种方案

什么是2PC?2pc即是两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase)、提交阶段(commit phase),2是指两个阶段,p是指准备阶段,C是指提交阶段。在计算机部分关系数据库如Oracle、Mysql支持两阶段提交协议1,准备阶段:事务管理器给每个参与都发送Prepared消息,每个数据库参与者在本地执行事务,并写本地的Undo/Redo日志,此时事务没有提交。(Undo日志是记录修改前的数据,用于数据库回滚,Redo日志是记录修改后的数据,用于提交事务后

2020-05-14 14:17:18 890

原创 分布式事务之CAP理论与Base理论

分布式事务的基础概念,与本地事务不同的是,分布式系统之所以叫分布式,是因为提供服务的各个节点分布在不同的机器上,相互之间通过网络交互。不能因为有一点网络问题就导致整个系统无法提供服务,网络因素成为了分布式事务的考量标准之一,因此,分布式事务需要更进一步的理论支持。CAP理论理解capcap是 Consistency、Availability、Partition tolerance三个词语的缩写。分别表示 一致性、可用性、分区容忍性。如下图,是商品信息管理的执行流程:整体执行流程如下:1、商品服

2020-05-13 12:26:51 310

原创 centos7.x 下Elasticsearch的单机安装

centos7下安装ElasticSearch 需要先安装jdk1.8以上,jdk1.8在centos7的安装注意:出于安全考虑,elasticsearch默认不允许以root账号运行。创建一个用户:useradd ping设置密码:passwd ping上传安装包,并解压:更改elasticsearch所属用户和用户组 chown -R ping:ping elasticsea...

2020-04-28 17:07:09 208

原创 fastDFS整合Spring Boot的使用

什么是FastDFSFastDFS是由淘宝的余庆先生所开发的一个轻量级、高性能的开源分布式文件系统。用纯C语言开发,功能丰富:文件存储文件同步文件访问(上传、下载)存取负载均衡在线扩容适合有大容量存储需求的应用或系统。同类的分布式文件系统有谷歌的GFS、HDFS(Hadoop)、TFS(淘宝)等。FastDFS的工作架构图FastDFS两个主要的角色:Tracker Ser...

2020-04-28 14:48:06 462

原创 centos7.x 静态IP的配置

vi /etc/sysconfig/network-scripts/ifcfg-ens33修改bootproto=staticonboot=yes在最后加上几行,IP地址、子网掩码、网关、dns服务器IPADDR=192.168.227.136GATEWAY=192.168.227.2NETMASK=255.255.255.0DNS1=119.29.29.29D...

2020-04-27 23:40:32 109

原创 fastDFS在centos7x上安装 踩坑过程与解决方法与使用nginx访问FastDFS

安装gcc(编译时需要)FastDFS是C语言开发,安装FastDFS需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gccyum install -y gcc gcc-c++后面会用到解压命令(unzip),所以这里可以用yum把unzip 也装一下yum install -y unzip zip安装libeventyum -y install l...

2020-04-27 23:28:50 654

原创 spring boot 与spring mvc 整合的文件上传以及绕过网关

pom.xml:<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> ...

2020-04-27 15:38:45 519

原创 三种解决ajax 的跨域问题的方式

什么是跨域跨域是指跨域名的访问,以下情况都属于跨域:跨域原因说明示例域名不同www.jd.com 与 www.taobao.com域名相同,端口不同www.jd.com:8080 与 www.jd.com:8081二级域名不同item.jd.com 与 `miaosha.jd.com为什么有跨域问题?跨域不一定会有跨域问题。因为跨域问题是浏览器对于...

2020-04-27 13:03:29 343

原创 spring IOC与DI的理解

spring 的优势方便解耦,简化开发通过 Spring 提供的 IoC 容器,可以将对象间的依赖关系交由 Spring 进行控制,避免硬编码所造成的过度程序耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。什么是程序的耦合?耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及...

2020-04-22 21:21:30 84

原创 spring aop 基本理解

什么是AOP?与OOP(面向对象)对比。传统的OOP开发中的代码逻辑是自上而下的,而在这个过程会产生写横切性的问题。而这些问题又与我们主业务逻辑关系不大,会散落在代码的各个地方,造成难以维护的问题。AOP编程思想就是把这些横切性的问题和主业务逻辑进行分离,从而直到解耦的目的。AOP 的作用及优势作用:在程序运行期间,不修改源码对已有方法进行增强。优势:减少重复代码提高开发效率维护...

2020-04-22 18:16:00 124

原创 SpringMVC 源码解析(SpringMVC 中三大组件详解)(二)

SpringMVC 源码解析(一)SpringMVC 中三大组件详解:1,处理器映射器2,处理器适配器3,视图解析器处理器映射器:它指的是:RequestMappingHandlerMapping 是在 Spring 的 3.1 版本之后加入的。它的出现,可以让使用者更加轻松的去配置 SpringMVC 的请求路径映射。去掉了早期繁琐的 xml 的配置它的配置有两种方式:都是在 s...

2020-04-16 15:00:02 241

原创 SpringMVC 源码解析(深入理解springmvc)(一)

SpringMVC 的执行过程分析:首先,我们先来看一下 springmvc 官方文档中提供的执行过程图通过此图,我们可以看到其实都是由前端控制器负责找到要执行的控制器方法。这个前端控制器就是SpringMVC 的核心控制器 DispatcherServlet搭建基于SpringMVC简单的web应用web.xml<?xml version="1.0" encoding="UTF...

2020-04-15 20:50:00 776

原创 redis持久化的两种方式RDB与AOF

如何实现Redis数据持久化(redis默认开启RDB模型)如果我们redis服务器宕机了,就会导致原来访问redis的请求全部到了mysql数据库,这个时候mysql数据库离崩溃就不远了确保我们重启redis服务器还能将绝大部分的数据恢复进内存,怎么办?是不是就要把内存数据保存到硬盘中便于恢复RDB模型:就是每隔一段时间,定时保存,有点像mysql中进程用到的mysqldump优势:...

2020-04-13 17:05:18 104

原创 redis常用数据结构与安装使用

概念: redis是一款高性能的NOSQL系列的非关系型数据库redis的安装与使用:1、准备工作(安装gcc依赖)yum -y install gcc-c++ 2、下载并解压源码包cd /usr/local #进入/usr/local目录wget http://download.redis.io/releases/redis-5.0.0.tar.gz #下载redistar -...

2020-04-13 16:03:55 103

原创 MYSQL数据库设计规范与结构优化

一、MYSQL数据库设计规范1、数据库命名规范a、采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线’_'组成;b、命名简洁明确(长度不能超过30个字符);c、例如:user, stat, log, 也可以wifi_user, wifi_stat, wifi_log给数据库加个前缀;d、除非是备份数据库可以加0-9的自然数:user_db_20151210;2、数...

2020-04-11 15:16:40 186

原创 mysql 的 sql语句与索引优化(二)

索引是什么?MySQL官方对索引的定义为:索引(index)是帮助mysql高效获取数据的数据结构。可以得到索引的本质:索引是数据结构MySQL默认存储引擎innoDB只显式支持B-tree(从技术上来说是B+Tree)索引索引分类 :普通索引:即一个索引只包含单个列,一个表可以有多个单列索引唯一索引:索引列的值必须唯一,但允许有空值(主键索引是不能有空值)复合索引:即一个索引包含多...

2020-04-11 13:42:37 292

原创 mysql 的 sql语句与索引优化(一)

这里写自定义目录标题MYSQL可以从哪几个方面进行数据库的优化?如下图所示:​SQL及索引优化: 根据需求写出良好的SQL,并创建有效的索引,实现某一种需求可以多种写法,这时候我们就要选择一种效率最高的写法。这个时候就要了解sql优化数据库表结构优化: 根据数据库的范式,设计表结构,表结构设计的好直接关系到写SQL语句。 (反范式设计,允许存在少量的冗余,来提升查询...

2020-04-10 20:34:09 155

原创 JAVA GC学习笔记

什么是垃圾回收?程序的运行必然需要申请内存资源,无效的对象资源如果不及时处理就会一直占有内存资源,最终将导致内存溢出,所以对内存资源的管理是非常重要了。java有自己的自动垃圾回收机制,学习GC之前先了解常用的GC的算法常见的垃圾回收算法有:引用计数法、标记清除法、标记压缩法、复制算法、分代算法 等1.1引用计数法:引用计数是历史最悠久的一种算法,最早George...

2020-04-03 22:59:16 95

原创 spring boot 与quartz整合(一)

springboot本身可以使用@EnableScheduling注解进行定时任务沿用的springboot少xml配置的优良传统,本身支持表达式等多种定时任务@Component //加入spring容器@EnableScheduling //开启对定时任务的支持public class Myjob { @Scheduled(cron = "*/5 * * * * ?")...

2020-04-01 20:14:18 221

原创 Quartz 学习笔记

Quartz是什么?Quartz能干什么?Quartz是一个任务调度的框架。它可以是你设置的某个时间点执行你设置的任务。如果应用程序需要在给定时间执行任务,或者系统有需要连续维护作业,那么Quartz是理想的解决方案任务持久化: Quartz入门案例:任务类:/** * 执行器,即需要定时执行的“某件事” */public class HolleJob i...

2020-03-31 23:16:59 223

原创 centos7 安装 jenkins 及下载插件失败 踩过的坑

第一步: 因为从jenkins官网下载太慢了,所以选择国内可以下载jenkins的。尽量不要安装老版本jenkins,不然装好后,发现很多插件不支持老版 本的jinkins,就只能被迫选择更新jenkins(更新jenkins也是从国外网址下载安装,我多次更新失败) 先从国内的清华源中下载jenkis :https://mirrors.tuna.tsinghua.edu.cn/jen...

2020-03-30 12:11:14 2180

wifi流量零撸grass详细教程

扩展程序

2024-01-16

helloShiro.zip

helloShiro.zip

2021-10-08

空空如也

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

TA关注的人

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