- 博客(34)
- 资源 (25)
- 收藏
- 关注
原创 redis缓存穿透,缓存击穿,缓存雪崩原因 + 解决方案
一、前言在我们日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度比较慢的问题而存在严重的性能弊端,一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重生产问题。为了克服上述的问题,
2020-07-11 15:34:28 11806
原创 TCC分布式事务之一 —— tcc-transaction-1.2.x最新版整合spring cloud + dubbo + zookeeper
tcc-transaction作为github开源tcc分布式事务框架,对比其他tcc开源框架,星数排名第一,可以异步处理,也可以同步处理。maven配置 <!--tcc-transaction核心包--> <dependency> <groupId>org.mengyun</groupId> <artifactId>tcc-transaction-spring</artifactId> <
2020-07-08 20:21:55 15254
原创 Mybatis 之缓存机制
MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。缓存可以极大的提升查询效率。● MyBatis系统中默认定义了两级缓存。● 一级缓存和二级缓存。1、默认情况下,只有一级缓存(SqlSession级别的缓存,也称为本地缓存)开启。2、二级缓存需要手动开启和配置,他是基于namespace级别的缓存。3、为了提高扩展性。MyBatis定义了缓存接口Cache。我们可以通过实现Cache接口来自定义二级缓存1、一级缓存一级缓存(local cache), 即本地缓存,
2020-07-07 09:36:55 14414
原创 Mybatis Plus 之开启、关闭二级缓存
一、开启MybatisPlus的全局配置:#二级缓存mybatis-plus.global-config.configuration.map-underscore-to-camel-case= truemybatis-plus.global-config.configuration.cache-enabled=true二、在对应的xml文件中,添加配置:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC
2020-07-06 21:27:47 21813
原创 springboot工程 seata-1.2.0 + nacos-1.3.0 + dubbo-2.7.x + shardingspehere-4.1.1 分布式高可用之AT事务最新版演示
一、准备事项seata-server-1.2.0·下载地址:https://github.com/seata/seata/releasesnacos-server-1.3.0下载地址:https://github.com/alibaba/nacos/releases/tag/1.3.0项目版本:springboot cloud alibaba 2.2.1(默认使用的是seata1.0.0版本)maven使用当前最新的seata版本<!--Seata 包--> .
2020-06-23 16:46:40 16301 6
原创 35个Java代码优化的细节,推荐
前言代码 优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。代码优化的目标是:减小
2020-06-23 14:59:14 15242
原创 Centos7 部署Kubernetes集群【1.17版】
1. 安装要求在开始之前,部署Kubernetes集群机器需要满足以下几个条件:一台或多台机器,操作系统 CentOS7.x-86_x64硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多集群中所有机器之间网络互通可以访问外网,需要拉取镜像禁止swap分区2. 学习目标在所有节点上安装Docker和kubeadm部署Kubernetes Master部署容器网络插件部署 Kubernetes Node,将节点加入Kubernetes集群中部署Dashboa
2020-06-03 18:10:01 15461
原创 Docker + Jenkins + Github 自动化构建maven项目
Docker + Jenkins + Github 自动化构建maven项目前期准备工作Linux系统(外网可访问).docker安装jenkins安装maven工程使用github管理实现目标本地代码修改,提交到Github远程仓库,即可完成自动化部署。实战步骤梳理本次整个过程依次为如下步骤:GitHub上准备一个spring boot的web工程;在GitHub上创建一个access token,Jenkins做一些需要权限的操作的时候就用这个access token去鉴权;
2020-05-29 22:16:45 15350
原创 23种设计模式 - 创建型模式 - 简单工厂模式
现实生活中,原始社会自给自足(没有工厂),农耕社会小作坊(简单工厂,民间酒坊),工业革命流水线(工厂方法,自产自销),现代产业链代工厂(抽象工厂,富士康)。我们的项目代码同样是由简到繁一步一步迭代而来的,但对于调用者来说,却越来越简单。在日常开发中,凡是需要生成复杂对象的地方,都可以尝试考虑使用工厂模式来代替。注意:上述复杂对象指的是类的构造函数参数过多等对类的构造有影响的情况,因为类的构造过于复杂,如果直接在其他业务类内使用,则两者的耦合过重,后续业务更改,就需要在任何引用该类的源代码内进行更改,
2022-05-06 17:02:58 229 1
原创 mysql聚合统计数据查询缓慢优化方案
写在前面在我们日常操作数据库的时候,比如订单表、访问记录表、商品表的时候。经常会处理计算数据列总和、数据行数等统计问题。随着业务发展,这些表会越来越大,如果处理不当,查询统计的速度也会越来越慢,直到业务无法再容忍。所以,我们需要先了解、思考这些场景知识点,在设计之初,便预留一些优化空间支撑业务发展。sql聚合函数在mysql等数据中,都会支持聚合函数,方便我们计算数据。常见的有以下方法取平均值 AVG()求和 SUM() 最大值 MAX()最小值 MIN()行数 COUNT()
2021-02-03 09:28:35 3540 4
原创 23种设计模式 - 创建型模式 - 原型模式
原型模式的定义与特点在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就很高效,就像孙悟空拔下猴毛轻轻一吹就变出很多孙悟空一样简单。原型模式的优点:1.Java 自带的原型模式基于内存二进制流的复制,在性能上比直接 new 一个对象更加优良。2.可以使用深克隆方式保存对象的状态,使用原型模式将对象复制一份,并将其状态保存起来,简化了创建对象的过程,以便在需要的时候使用(例如恢复到历史某一状态),可辅助实现撤销操作。原型模式的
2021-01-28 17:06:53 236
原创 23种设计模式 - 创建型模式 - 单例模式
单例模式有 3 个特点:单例类只有一个实例对象;该单例对象必须由单例类自行创建;单例类对外提供一个访问该单例的全局访问点。单例模式的优点和缺点单例模式的优点:1.单例模式可以保证内存里只有一个实例,减少了内存的开销。2.可以避免对资源的多重占用。3.单例模式设置全局访问点,可以优化和共享资源的访问。单例模式的缺点:1.单例模式一般没有接口,扩展困难。如果要扩展,则除了修改原来的代码,没有第二种途径,违背开闭原则。2.在并发测试中,单例模式不利于代码调试。在调试过程中,如果单例中的
2021-01-28 16:56:12 192
原创 Postman使用小技巧 - 用Postman生成Request代码
一、Postman这款工具可以让你很方便的测试你的Web API,那如果你实在是没办法用Postman,必须手写代码,又或者你有别的需求是Postman没法实现的,你必须写一个特殊的script或App来测试你的接口,那这时候是不是Postman就没有用武之地了?我来个你share一个小技巧吧,管不管用你说的算。假设我现在要这样来测我的接口:我们要设置用户名和密码:...
2020-12-21 14:07:40 391
转载 java中什么是装饰者模式? 装饰者模式的使用!!
其实无论是代理模式还是装饰模式。本质上我认为就是对原有对象增强的方式~一、对象增强的常用方式很多时候我们可能对Java提供给我们的对象不满意,不能满足我们的功能。此时我们就想对Java原对象进行增强,能够实现我们想要的功能就好~一般来说,实现对象增强有三种方式:继承继承父类,子类扩展装饰器模式使用“包装”的方式来增强对象代理模式给女朋友讲解么是代理模式1.1继承最简单的方式就是继承父类,子类扩展来达到目的。虽然简单,但是这种方式的缺陷非常大:一、如果父类是带有数据、信息、属性的话,那
2020-11-16 17:05:45 188
原创 RabbitMq发送和接收消息(自动创建队列、交换机和绑定)
自动创建队列、交换机和绑定一、pom.xml<dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>2.0.5.RELEASE</version></dependency>二、发送者(producer)@Resourcepr
2020-11-16 11:13:30 3934
原创 如何让 HTML识别 String 里的 ‘\r\n‘ 并成功换行显示
在结果所在的 div 的 css 设置:white-space: pre-line;如:<span style="white-space: pre-line;"> 文本内容</span>然后页面就能成功识别 ‘\r\n’ 或 ‘\n’ ,并换行显示.
2020-11-13 11:17:16 9668
原创 Kryo 高性能序列化和反序列化
一、pom.xml<dependency> <groupId>com.esotericsoftware</groupId> <artifactId>kryo</artifactId> <version>4.0.0</version></dependency>二、封装工具类package com.cxs.web.system.kryo;import com.cxs.common
2020-10-27 14:27:37 760 7
原创 java项目集成J2Cache(基于内存和 Redis 的两级 Java 缓存框架)
一、概述SpringCache本身是一个缓存体系的抽象实现,并没有具体的缓存能力,要使用SpringCache还需要配合具体的缓存实现来完成。虽然如此,但是SpringCache是所有Spring支持的缓存结构的基础,而且所有的缓存的使用最后都要归结于SpringCache,那么一来,要想使用SpringCache,还是要仔细研究一下的。二、缓存注解SpringCache缓存功能的实现是依靠下面的这几个注解完成的。@EnableCaching:开启缓存功能@Cacheable:定义缓存,用于触发
2020-10-24 16:56:00 881
原创 20款帮助你加薪的IDEA神器插件!!!(十分推荐)
前言idea是我们程序员的第二个女朋友,我们得把它弄的非常智能,才能更加高效的工作,那么这里就给大家介绍一些非常好用的插件,让我们的idea变的更加高效好用。Material Theme UI可以将原始外观更改为Material Design外观,使用之后的 idea 界面变得非常漂亮,心情好了,写代码的速度也变快了。GenerateAllSetter这个是帮我们一键生成对象所有的set方法,不用我们手动一个一个去写set,如果一个对象有十几个、二十几个属性,那用起来真的是不要太爽。Prop
2020-08-11 21:31:08 3482
转载 启动异常:LoggerFactory is not a Logback LoggerContext but Logback is on the classpath
因为引用了log4j2同时还引用了logback
2020-07-31 17:19:12 524
原创 启动异常:java.lang.NoClassDefFoundError: org/apache/curator/framework/recipes/cache/TreeCacheListener 解决
Springboot:Zookeeper整合Dubbo报错:java.lang.NoClassDefFoundError: org/apache/curator/framework/recipes/cache/TreeCacheListener解决方法:添加以下依赖<dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</arti
2020-07-31 14:15:50 9431
原创 启动异常:java.lang.NoClassDefFoundError: org/apache/curator/framework/CuratorFrameworkFactory 解决方法
Springboot:Zookeeper整合Dubbo报错:java.lang.NoClassDefFoundError: org/apache/curator/framework/CuratorFrameworkFactory解决方法:添加以下依赖<dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId
2020-07-31 14:10:33 8598
原创 启动异常:java.lang.ClassNotFoundException: org.springframework.cloud.context.named.NamedContextFactory解决
解决方法:添加以下依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> <version>2.2.3.RELEASE</version></dependency>
2020-07-31 13:47:52 3817
原创 IDEA使用Spring initializr 构建SpringBoot项目connect timed out错误的解决方案
解决方案(本人推荐):在创建时点击:Custom,在后面输入:https://start.aliyun.com/(使用阿里云,如下图)这个是使用阿里云生成项目,比spring官方生成项目要快很多。对有帮助的小伙伴记得点个赞,关注一波哟~...
2020-07-29 21:54:56 11380 1
原创 java.math.BigDecimal 比较大小
BigDecimal first = new BigDecimal ("100"); BigDecimal second = new BigDecimal ("100"); //使用compareTo方法比较 //注意:都不能为null,否则会报空指针 if(first.compareTo(second) == 0){ System.out.println("first等于second"); }..
2020-07-06 17:13:13 15620
转载 没用过这些 IDEA 插件?怪不得写代码头疼
学习使用一些插件,可以提高平常工作中的开发效率。对于我们开发人员很有帮助!插件安装IDEA里面,依次选择打开 File → Settings → Plugins,在Plugins里面可以搜索需要的插件,然后安装(安装完插件,一定要重启Idea,不然插件不生效)1. Alibaba Java Coding Guidelines【阿里巴巴代码规范检查插件】① 功能:代码规范检查② 使用方法:在你需要检查的代上面,点击右键,选择编码规约扫描将会出现如下所示的检查结果,并会给出编码规
2020-07-04 14:23:27 15231
原创 xshell6 xftp6 评估期已过 解决办法
xshell6 评估期已过,因为我下载的版本是有期限的。大家可以修改为免费的版本,这样就不会出现这个提示了。具体的操作步骤如下:1、前往下载地址,填写必填信息,邮箱一定要填写https://www.netsarang.com/zh/free-for-home-school/2、有限会收到2封邮件,一个是xshell,一个是xftp3、进入邮件,点击第一个链接,下载新的xshell或xftp安装程序即可4、新安装的程序,之前的保存的SSH信息,不会丢失,放心安装5、版本的区别,只有打开标
2020-06-26 11:12:30 19207 4
转载 推荐几款IDEA插件,最强撸码神器
专属目录撸码神器详细介绍StackoverflowFindBugsAlibaba Java Coding Guidelin...
2020-06-25 16:10:46 18407
转载 讲真,这两款idea插件,能治愈你英语不好的病
随着 IDEA 最新版(版本号是 2020.1)的发布,英语不好的病可以彻底治愈了。为什么这么说呢?因为 IDEA 支持汉化了!一款插件就能搞定。第一步,直接在官网下载最新版。安装的时候请选择保留原来的版本,因为新版有点小坑:提示 Lombok 有点小问题。虽然直接 Enable 就可以解决, 但版本升级的时候还是要小心,免得遇到大坑,影响队友就糟心了。新版本安装成功后,可以直接在插件市场输入关键字“chinese” ,然后福音就来了,看到下图没,有一个中文汉化包的插件。install 它,
2020-06-25 16:00:52 26654 1
原创 springboot集成mybatis-plus时注入mapper失败的问题 NoSuchBeanDefinitionException
异常信息如下:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'studentController': Unsatisfied dependency expressed through field 'studentService'; nested exception is org.springframework.beans.factory.UnsatisfiedD
2020-06-22 18:38:35 21033
原创 idea返回撤销,还原Ctrl+Z掉的内容,推荐
Ctrl+Z撤销多了,结果将自己原本写好的给撤销没了,不过恢复的快捷键为:Ctrl+Shift+Z方可;1.Ctrl+z是撤销快捷键2.如果想恢复Ctrl+z 掉的内容,按快捷键为:Ctrl + Shift + Z。如果Ctrl + Shift + Z 不起作用,则是快捷键冲突,解决:File-->Settings-->Keymap,搜索redo,可以修改返回撤销的快捷键。[我设置的是Ctrl + Y]...
2020-06-20 16:27:00 21524
转载 ffmpeg参数解释
本系列文章导航Windows下FFmpeg快速入门ffmpeg参数解释mencoder和ffmpeg参数详解(Java处理视频)Java 生成视频缩略图(ffmpeg)使用ffmpeg进行视频文件转换成FLV整理java 视频处理 mencoderjav...
2020-06-05 09:32:35 15291
转载 java项目中使用ffmpeg剪辑部分视频
在项目中,有个需求是分享视频链接地址到微信、qq或者朋友圈,只能试看两分钟,本想着通过h5界面就能控制实现效果,代码如下,但是前端终究不是安全的,其次监听事件,如果拉播放进度条,中途停顿多次,就会出现多次弹框,对用户体验终究不是好的,因此,后面想着后端截取原视频部分视...
2020-06-05 09:24:24 16532 1
原创 Vue 快速上手教程
一、Vue基本环境安装主要的功能:1. 统一的目录结构2. 本地调试3. 热部署4. 单元测试5. 集成打包上线需要的环境Node.js:http://nodejs.cn/download/安装就无脑下一步就好,安装在自己的环境目录下Git:https://git-scm.com/downloads镜像:https://npm.taobao.org/mirrors/git-for-windows/确认nodejs安装成功:cmd 下输入node-v,查看
2020-06-04 23:21:32 15373 1
H+ 后台主题UI框架4.1(最新版)
2017-04-25
apache-maven-3.3.9 最新下载
2016-11-24
jQueryEasyUI 1.3.6中文文档
2014-08-22
dom4j+xpath.jar
2014-08-11
jquery.cookie.js
2014-06-26
cookie.js 插件
2014-06-26
IE 10官方正式版
2013-09-20
tomcat7.0.23(免安装解压版)
2013-09-06
北大青鸟Y2(Struts+Hibernate+Spring )
2013-07-19
log4j日志驱动包
2013-03-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人