自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot统一处理dubbo接口异常和错误

无controller层的dubbo接口的统一异常处理

2023-02-28 12:01:38 1279

原创 优雅的controller层设计

优雅的controller层设计

2023-02-22 10:15:01 4537 5

原创 线程池知识点

newSingleThreadExecutor:创建一个单线程的线程池,此线程池保证所有任务的执行顺序按照任务的提交顺序执行。newFixedThreadPool:创建固定大小的线程池,每次提交一个任务就创建一个线程,直到线程达到线程池的最大大小。newCachedThreadPool:创建一个可缓存的线程池,此线程池不会对线程池大小做限制,线程池大小完全依赖于操作系统(或者说JVM)能够创建的最大线程大小。newScheduledThreadPool:创建一个大小无限的线程池,此线程池支持定时

2022-09-08 09:50:08 129

原创 DDD领域驱动模型笔记

1、传统MVC模式,service中处理对于业务,各个业务service做的事情都有很多相似部分,并且代码混乱,不容易理解,不便于修改DDD模式,按照业务功能进行划分领域,使得业务service中的代码在后续业务变更时代码不需要进行改变,整个业务流程也明朗清晰2、例如,抽象出来一个checkService借口,具体业务的check具体去实现checkService即可,业务service中永远只需要调用checkService的check方法即可,并且,后续的更新拓展也不需要修改业务代码,从而达到一个防

2022-09-06 10:10:32 280

原创 kafka基础知识点整理

kafka基础知识点整理

2022-08-28 13:57:02 532

原创 Spring Boot为什么改成了默认cglib动态代理

https://blog.csdn.net/weixin_41325595/article/details/103576207

2020-08-11 00:46:26 1462

原创 关于BIO、NIO、AIO的区别

BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。NIO:同步非阻塞式IO,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。AIO(NIO.2):异步非阻塞式IO,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理。

2020-08-05 01:12:21 170

原创 多线程知识点

一、线程启动的两种方式1.、继承Thread类重写Thread的run方法,在run方法中进行操作,用start方法启动线程 2、继承Runnable接口,实现run方法,在run方法中进行操作,需要传入当前类的实例对象创建一个Thread实例,然后调用start方法启动线程...

2020-08-04 00:19:33 529

原创 加Lock锁和加Synchronized关键字的区别

1、lock加锁lock锁是实现了aqs原理的加锁方式,进入方法时,添加死循环结构,获取当前线程进行加锁,然后继续执行代码,后来的线程加锁失败就进入阻塞状态,加入队列中,队列数据结构,先进先出,当加锁的线程释放锁后,队列中最靠前的线程优先走出阻塞状态,然后进获取锁,继续执行代码。2、Synchronized关键字Synchronized关键字是基于JVM实现的加锁,是一种非安全锁,当方法结束时,方法外有多条线程等待时,具体执行那条线程是不确定的;...

2020-07-31 00:36:07 352

原创 hashmap加载因子为什么是0.75,为什么链表的长度达到8时会转成红黑树

1、为什么链表的长度达到8的时候要转成红黑树?2、加载因子为什么默认为0.75?3、为什么要求数组的长度是2的指数次幂?创建HashMap是,传入一个数组的长度,

2020-07-30 23:50:11 687

原创 JVM原理模型图

2020-07-27 23:37:57 155

原创 SpringBoot配置Clickhouse

因为项目中用到Clickhouse数据库,今天在分享一个简单的案例一、加入clickhouse jar包依赖 <dependency> <groupId>ru.yandex.clickhouse</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>0.1.53</version> </dependency>二、配置Click

2020-07-22 00:37:49 12691 1

原创 SpringBoot配置多数据源,结合AOP实现读写分离(二)

## 读写分离:缓解数据库的压力,让主数据库处理事务性增、改、删操作,而从数据库处理查询操作。**一、**首先要部署两个Mysql数据库并实现主从复制,详情请参考我之前的文章dokcer容器环境实现mysql主从复制**二、**在pom文件中添加如下依赖:<dependencies> <dependency> <groupId>com.alibaba</groupId> <artif

2020-07-21 00:41:59 452

原创 Centos7.6环境搭建redis集群,主从同步(二)

一、redis单节点会有一定的风险,今天写一下redis集群的搭建优点:支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由Master来完成。Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力。Master Server是以非阻塞的方式为Slaves提供服务。所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求。Slave

2020-07-12 20:03:01 393

原创 springboot参数校验统一异常处理

1、当接受请求是需要对参数进行校验,首先我们接受json格式的参数,下面以用户注册功能为例:如果我们没有统一异常处理,则对不同方法的参数都需要处理通过测试,查看日志及返回值我们知道,当参数错误时,会抛出如下异常:所以我们统一异常处理就应该指定对该异常进行处理,首先我们定义的异常类要加上@ControllerAdvice注解,然后编写具体的异常处理方法,在该方法上添加@ExceptionHandler(MethodArgumentNotValidException.class)注解,这样该异常就会

2020-07-07 01:14:02 1162 1

原创 MySql索引B+Tree数据结构原理解析

索引的本质 索引是帮助MySql高效获取数据的一种"排好序"的"数据结构"MySql采用的是B+Tree数据结构,B+Tree数据结构在每一个节点存储多个值,非叶子节点只存储索引,不存储data,在叶子节点存储的是索引和完整的data元素(备注:InnoDB)。根节点是存储在内存中,所以查询速度更快,但是正因为在内存中,所以不能存入太大量的所以,不然会占用大量内存,innodb引擎,默认根节点的大小为16k如果主键采用bigint类型,一个bigint类型占8个字节,在节点上,索引和索引之间空

2020-06-01 01:53:20 525

原创 导入之前保存的docker镜像名称和版本都为none

之前将用到的docker镜像都进行了统一保存备份, 昨天要用的时候就直接抓过来用了,结果镜像名称和版本都显示为后来发现,在保存本地镜像的时候使用docker save : -o .tar命令和docker save -o .tar两种命令虽然都可以保存镜像,但是保存后的镜像大小不一样使用docker save : -o .tar命令保存:使用docker save -o .tar命令保存:而使用"IMAGE ID"来保存的镜像,在导入的时候就会出现镜像名称和版本号为的情况,当我们换做用"镜

2020-05-27 13:34:09 2295 1

原创 mysql导数据时报错:mysql server has gone away

在给mysql数据库导入sql文件时,提示mysql server has gone away,然后数据库仅仅只导入了几张表而已

2020-05-26 09:50:39 156

原创 浏览器安装fehelper插件,亲测可行

1、github地址:[https://github.com/zxlie/FeHelper/tree/master/apps/static/screenshot/crx]2、点击下载最新的crx文件3、打开浏览器的"更多工具/扩展程序",然后打开右上角的开发者模式4、将下载好的crx文件拖入浏览器当前区域,点击添加扩展程序5、安装自己想要的工具,安装完成后点击右侧的"加入右键"6、完成后点击左上方的保存就好了,浏览器右上角就已经有fehelper的图标了,在其他页面点击右键也可以看到

2020-05-22 16:38:15 1630 1

原创 利用子查询优化数据量较多时分页场景

MySQL 并不是跳过 offset 行,而是取 offset+N 行,然后返回放弃前 offset 行,返回 N 行,那当offset 特别大的时候,效率就非常的低下,要么控制返回的总页数,要么对超过特定阈值的页数进行 SQL改写。我们可以先快速锁定需要获取的id段,然后再关联查询:SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 LIMIT 100000,20 ) b where a.id=b.id当limit 10,0000条数据时,查询耗

2020-05-20 12:00:56 456 1

原创 druid1.0.9连接mysql5.7:Cannot resolve com.mysq.jdbc.Connection.ping method. Will use SELECT 1

连接数据库时报错:检查了数据库配置也没问题,经过查找资料,应该是druid和mysql的版本兼容性问题,我用的的是mysql5.7,druid1.0.9,将druid版本修改为1.0.25后,错误解决,以后要多注意工具之间的版本冲突问题,引以为戒。...

2020-05-20 09:26:46 765

原创 StringUtils中isEmpty和isBlank有什么区别?一起来看源码

1、StringUtils中isEmpty和isBlank都是用来判断字符串是否为空的,那么他们之间有什么区别呢?不多说,直接上源码根据StringUtils源码可见,相比sEmpty方法,isBlank还对空格进行了判断也就是说在只有空格的情况下,isEmpty为false,而isBlank依然为true...

2020-05-17 00:02:25 165

原创 Springboot获取一年的天数,避免在公历闰年时出现错误

1、不要在程序中写死一年为 365 天,避免在公历闰年时出现日期转换错误或程序逻辑错误。2020年有366天 // 获取今年的天数 int dayOfYear = LocalDate.now().lengthOfYear();2、获取指定年份的天数2019年有365天 // 获取指定年份的天数,例如:2019 int daysOf2019 = LocalDate.of(2019, 1, 1).lengthOfYear();...

2020-05-13 01:07:00 307

原创 Rails Active Record Associations 笔记(二)

一、Rails支持六种类型的关联:belongs_tohas_onehas_manyhas_many :throughhas_one :throughhas_and_belongs_to_many二、详细的参考以下各节详细介绍了每种类型的关联,包括它们添加的方法以及在声明关联时可以使用的选项。1、belongs_to参考belongs_to关联会与另一个模型进行一对一匹配。用...

2020-04-15 22:26:50 204

原创 dokcer容器环境实现mysql主从复制 (一)

1、基于docker实现mysql主从复制

2020-04-09 15:02:39 223

原创 mysql添加字段、修改字段、删除字段、添加索引、添加/删除数据库等常用命令

一、字段操作1、修改字段类型 alter table 表名 modify column 字段名 新字段类型 约束条件;例: alter table test modify column name varchar(255) default null comment ‘名称’;2、修改字段名 alter table 表名 change 旧字段名 新字段名 新数据类型 约束...

2020-04-09 09:52:41 274

原创 docker容器的数据卷:容器中数据持久化

1、在Docker中,要想实现容器中的数据持久化(也就是数据不随着容器的删除而消失)。目前Docker有三种不同的方式实现数据持久化(1) volumes、(2)bind mounts、(3)tmpfs在这里我指介绍最常用的的方式:volumes2、我们这里已nginx容器为例,在创建容器之前,先创建好对应的数据卷docker volume create nginx-storage创建...

2020-01-16 14:01:51 335

原创 SpringBoot启动时报错:Error creating bean with name 'dataSource' defined in class..........

如果pom.xml中没有配置mybatis的依赖,出现这个错误那么Spring boot启动时会默认加载org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration类加载时使用@Configuration注解向spring注入dataSource bean,如果项目中没有关于dataSource的配置信息,那么...

2020-01-09 21:31:25 11087 2

原创 springboot获取访问的ip、method、url等数据

1、先掉用"RequestContextHolder"获取"requesAttribute"ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();2、再调用"getRequest()"HttpServletRequ...

2020-01-05 22:04:22 4017

原创 一次成功,不走弯路,Centos安装redis(一)

1、通过wget方式直接在linux上下载Rediswget http://download.redis.io/releases/redis-5.0.5.tar.gz2、解压下载的redis-5.0.5.tar.gz 文件tar -zxf redis-5.0.5.tar.gz3、因为Redis是C实现的,需要gcc来进行编译,如果系统未安装gcc,在接下来进行make操作时就会报错,g...

2020-01-02 21:16:17 370 1

原创 一次就成功,不走弯路,centos7安装docker环境

因为在自己的服务器上需要安装docker环境,我的服务器版本是centos7.6,就在网上找了一下,不过按照很多播客的指导操作下来并未安装成功,最后总算成功了,所以将成功的操作分享给大家,希望大家少走弯路一、如果之前安装过docker或者安装一半未成功,应先删除之前安装的部分 yum remove docker二、安装系统工具 yum -y install yum-utils devic...

2020-01-02 09:02:20 168

原创 Mysql数据库报错:select list is not in group by clause and contains .....sql_mode=only_full_group_by问题

最近使用Mysql时遇到select list is not in group by clause and contains nonaggregated…sql_mode=only_full_group_by这个错误,查询资料最后解决了,在这里分享一下,我用的是Mysql5.7,Mysql5.7默认会开启only_full_group_by 模式,在这个模式下,group by会变成和 disti...

2019-11-08 10:40:40 615

原创 Zabbix4:Orabbix报错“received unexpected response ' ' for key 'archive' ”

asdasfasfasfasf

2019-11-07 11:54:52 2694

原创 Oracle表被锁解决方法

最近在工作中遇到了Oracle数据库表被锁的情况,导致无法对表进行修改,再这里给大家分享一下解决方法,避免大家从才坑1、查询锁的session_idmysql> select session_id from v$locked_object例: 33342、根据session_id查询锁的会话信息mysql> select sid ,serial# from v$se...

2019-09-22 00:14:58 255

空空如也

空空如也

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

TA关注的人

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