- 博客(59)
- 收藏
- 关注
原创 mysql8.0
Mysql8.0 新特性介绍一 性能升级官方表示MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。MySQL 8.0 在读/写工作负载、IO 密集型工作负载、以及高竞争工作负载时相比MySQL5.7有更好的性能。可以使用一款mysql压测工具sysbench,是一款非常方便的工具,它可以帮你在数据库中构建大量的大数据,自动的创建表,接着模拟很多的线程去并发访问你的数据库,可以执行各种各样用于读写数据库的sql语句,以及提交复杂的事物二 NoSql文档支持MySQL 从 5.7 版本开
2020-09-16 10:47:58
467
原创 Mysql 优化
这篇文章会介绍一些mysql优化经验,不只是sql语句的优化,还有本身mysql服务器的性能优化多个Buffer Pool 优化并发能力我们对mysql进行CRUD操作时,mysql会将数据文件读取到BufferPool内存缓存中,因此我们可以设当增大BufferPool的数量,和BufferPool的大小,减少mysql多线程访问的干扰,增加mysql的性能配置再my.cnf中修改innodb_buffer_pool_size = 8589934592innodb_buffer_pool_ins
2020-06-07 22:02:32
196
原创 Mysql 压测工具 sysbench
介绍如果先服务上线前,我们想了解mysql的性能,可以使用一款mysql压测工具sysbench,是一款非常方便的工具,它可以帮你在数据库中构建大量的大数据,自动的创建表,接着模拟很多的线程去并发访问你的数据库,可以执行各种各样用于读写数据库的sql语句,以及提交复杂的事物我们先去安装sysbench安装sysbench在linux服务器,使用root账户安装curl -s https://packagecloud.io/install/repositories/akopytov/sysbench
2020-06-06 09:16:05
579
原创 No typehandler found for property createTime mybatis LocalDateTime
一般在使用mybatis的mapper的映射文件中,我们一般使用java.util.Date使用最为映射,但是jdk1.8之后提供了java.time.LocalDateTime类,如果我们希望使用LocalDateTime类作为映射,在启动又会有以下报错Caused by: java.lang.IllegalArgumentException: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: jav
2020-05-27 16:31:11
2817
原创 java HashMap 面试题
hashMap 底层数据结构1.数组+链表,链表长度大于8 转红黑树hashmap 算法优化. hashcode计算优化static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}将计算的hashcode右移16位,与hashcode进行异或,相当于hashcode的高低16位进行了异或运算
2020-05-21 00:15:54
481
转载 java.lang.NoClassDefFoundError: Could not initialize class xxx 原因及解决方法
NoClassDefFoundError产生的原因有好几种,这里记录静态变量或静态块引起的。具体抛出的异常类似: java.lang.NoClassDefFoundError: Could not initialize class xxxJVM在加载类的时候,会初始化类里的静态变量,或执行静态块,如果这个时候抛出了异常,该类就会加载失败,那么以后任何使用到这个类的地方,都会抛出NoClassDefFoundError异常,如下面的例子:public class TestNoClassDefFoun..
2020-05-12 13:41:42
72695
3
原创 KeeperErrorCode = ConnectionLoss for zookeeper分布式锁报错
今天真的是把我的心态的搞崩了,整整弄了一天,被kafka版本和zookeeper客户端版本,有两个问题,kafka是客户端始终连不上kfkaserver,最后发现是客户端版本太高了,我安装的kafka版本是15年的,真是脑子进水了,心态炸了,真的是被他俩kafka-client 和 springkafka 版本坑到自闭,不过网上有人和我一样哈哈,同病相怜‘生产者发送时报这个错:Excepti...
2020-05-03 20:34:52
959
原创 nginx: [emerg] "lua_shared_dict" directive is not allowed here in lua.conf:10
此命令需要在ngxin的ngx_lua模块中使用,注意在http模块内、server模块外。lua_shared_dict test_shm 5m;server {server_name test.04007.cn;…}
2020-05-03 12:11:14
2850
转载 bad argument #2 to 'set_keepalive' (number expected, got nil)的解决办法 lua脚本
分发层架构中,我们会在nginx里去写lua脚本,因为我们需要自定义一些特殊的业务逻辑比如说,流量分发,自己用lua去写分发的逻辑,在分发层nginx里去写的再比如说,要用l缓存架构中的的控制逻辑,在应用层nginx里去写的nginx+lua 用最流行的开源方案,就是用OpenResty这次我下了一个...
2020-05-03 10:51:43
2493
原创 曾国藩四句话,送给我自己
最近在考虑人生以后的一些事情,发现自己的性格还是比较犹豫的,做一些大事决定的时候有些犹豫,难以下定决心,后面朋友将曾国藩的四句话送给了我,在这做个记录,时时反思自己,改掉自己的性格缺点。曾国藩是晚清名臣,中国近代政治家、文学家,湘军领袖。曾国藩开拉开了中国近代化建设的大幕,对中国近代社会发展影响深远。在曾国藩的主导下,中国建造了第一艘轮船,设立了第一所兵工学堂,翻译出版了第一批外文书籍,派遣了第...
2020-04-27 13:47:14
1437
原创 java 实现PGP生成公私钥对生成,以及加解密文件
介绍最近和联通的数据生成系统对接需要使用PGP工具,网上查了资料,调了一整天终于出来了,下面介绍下使用方法以及碰到的一些的小坑使用方法依赖jar包 <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15...
2020-04-07 17:24:30
4258
29
原创 sqlsever2012使用pageHelper分页插件报错解决@P0”附近有语法错误
介绍在mybatis 通过pageHelper 连接sqlServer 2012 时总报错### Error querying database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: “@P0”附近有语法错误。### The error may exist in user.xml### The error may...
2020-03-12 14:05:02
1335
原创 oracle迁移mysql 遇到的一些坑
背景疫情期间,有一个老项目要从oracle迁移到MySQL, 其中碰到了一些坑,在此做个记录和大家分享一下sequence 变 自增id老项目中oracle主键id都是使用sequence,在mysql中自然得使用自增主键,这块主要朋友的问题是,在老项目中使用的dao层框架是springJdbc,再插入数据库中,有时需要返回插入的主键ID,oracle数据库一般都是,先查询nextval()...
2020-02-28 10:32:13
1049
转载 Spring 事务 RequestNew 不生效,不能创建新的事务
先看个缩减版的业务逻辑逻辑上要求:当生成业务数据失败时,已落地的数据不可回滚开发时将 数据落地 和 生成业务数据 这两个处理逻辑放在不同的事物中@Service(“asyncSendMessage”)public class AsyncSendMessageServiceImpl implements SendMessageService{public Response doAsyncS...
2020-01-21 10:05:45
1717
原创 Maven 常用命令
跳过测试-Dmaven.test.skip=truedocker 部署mvn package dockerfile:build -Dmaven.test.skip=true
2020-01-20 17:09:36
153
原创 SpringBean生命周期-初始化和销毁
Spring Bean初始化和销毁:在实际开发中经常需要在Bean使用之前或者之后作写必要的操作,Spring对Bean的生命周期的操作提供了支持。下面是SpringBean的生命周期流程图:根据上面的流程图我们有三种方式实现对Bean的生命周期进行操作:Java配置方式:使用@Bean的initMethod和destroyMethod(相当于xml配置的init-method和dest...
2020-01-13 23:19:55
303
原创 SpringBoot基础教程(一)-快速入门
SpringBoot 介绍在第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用!Spring Boot让我们的Spring应用变的更轻量化。比如:你可以仅仅依靠一个Java类来运行一个Spring引用。你也可...
2020-01-07 23:36:06
355
原创 设计模式-装饰模式 策略模式
装饰模式装饰器模式,也成为包装模式,顾名思义,就是对已经存在的某些类进行装饰,以此来扩展一些功能。其结构图如下: Component为统一接口,也是装饰类和被装饰类的基本类型。ConcreteComponent为具体实现类,也是被装饰类,他本身是个具有一些功能的完整的类。Decorator是装饰类,实现了Component接口的同时还在内部维护了一个ConcreteComponent的实...
2019-12-29 10:47:04
203
原创 设计模式-模板方法模式 适配器模式
模板方法模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的重复代码全部在父类里面,不同业务的,使用抽象方法,抽取给子类进行实现。抽取过程—抽象方法。某些特定步骤。核心:处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不能确定。因此,我们采用模板方法模式,将这个节点的代码实现转移给子类完成。即:处理步骤在父类中...
2019-12-29 08:51:44
413
原创 设计模式-代理模式 建造者模式
什么是代理模式通过代理控制对象的访问,可以详细访问某个对象的方法,在这个方法调用处理,或调用后处理。既(AOP微实现) ,AOP核心技术面向切面编程。应用场景SpringAOP、事物原理、日志打印 等等代理的分类静态代理(静态定义代理类)动态代理(动态生成代理类),又可以分为Jdk自带动态代理,Cglib 、javaassist(字节码操作库)静态代理由程序员创建或工具生成代理...
2019-12-26 23:09:42
199
原创 设计模式-简单工厂模式 工厂方法模式 抽象工厂模式
什么是工厂模式实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式,但是请注意 简单工厂模式不属于23中设计模式工厂模式的好处工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。利用工厂模式可以降低程序的耦合性,为后期的维护修改提供了很大的便利。将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。工厂与容器概念简单工厂模式...
2019-12-26 22:03:56
95
原创 设计模式-单例模式
什么是单例保证一个类只有一个实例,并且提供一个访问该全局访问点单例应用场景Windows的Task Manager(任务管理器)就是很典型的单例模式(这个很熟悉吧),想想看,是不是呢,你能打开两个windows task manager吗? 不信你自己试试看哦~windows的Recycle Bin(回收站)也是典型的单例应用。在整个系统运行过程中,回收站一直维护着仅有的一个实例。网站...
2019-12-25 20:49:34
109
原创 并发编程之并发队列及线程池
并发队列在并发队列上JDK提供了两套实现,一个是以ConcurrentLinkedQueue为代表的高性能队列非阻塞5️⃣,一个是以BlockingQueue接口为代表的阻塞队列,无论哪种都继承自Queue。阻塞队列与非阻塞队列阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程...
2019-12-21 22:27:54
233
原创 并发编程之锁机制了解
介绍锁的机制大家一定听说过很多,比如乐观锁,悲观锁,排他锁,重入锁,CAS无锁机制,自旋锁,分布式锁等等,下面简单简绍下这些锁悲观锁与乐观锁悲观锁:悲观锁悲观的认为每一次操作都会造成更新丢失问题,在每次查询时加上排他锁。每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,...
2019-12-19 09:22:31
187
原创 并发编程之线程通讯
线程通讯多线程之间通讯,其实就是多个线程在操作同一个资源,但是操作的动作不同。比如一个写操作,一个读操作。wait notify 方法1.因为涉及到对象锁,他们必须都放在synchronized中来使用. Wait、Notify一定要在synchronized里面进行使用。2.Wait必须暂定当前正在执行的线程,并释放资源锁,让其他线程可以有机会运行3. notify/notifyall...
2019-12-17 20:55:55
203
原创 并发编程之java内存模型(JMM)
多线程三大特性原子性即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。一个很经典的例子就是银行账户转账问题:比如从账户A向账户B转1000元,那么必然包括2个操作:从账户A减去1000元,往账户B加上1000元。这2个操作必须要具备原子性才能保证不出现一些意外的问题。我们操作数据也是如此,比如i = i+1;其中就包括,读取i的值,计算i,写入i。这行...
2019-12-17 09:21:27
93
原创 并发编程之线程安全
什么是线程安全当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。public class ThreadTrain implements Runnable { private int trainCount = 100; @Override public void run() { while (t...
2019-12-13 21:24:34
107
原创 并发编程之多线程基础
多线程和进程的区别每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。使用线程可以把占据时间长的程序中的任务放到后台去处理,程序的运行速度可能加快,在一些等待的任务实现上如用户输入、文...
2019-12-12 22:20:15
97
原创 reply-code=404, reply-text=NOT_FOUND - no queue 'modify_exchange_name' in vhost '/bus', class-id=50,
reply-code=404, reply-text=NOT_FOUND - no queue ‘modify_exchange_name’ in vhost ‘/bus’, class-id=50, method-id=10启动raabitmq服务报错,1.先启动生产者不报错,2.再启动消费者报错请注意消费者队列名称...
2019-12-06 21:16:22
11111
3
原创 springcloud 整合oauth2.0
SpringCloud Oauth2在Spring Cloud需要使用oauth2来实现多个微服务的统一认证授权,通过向OAUTH服务发送某个类型的grant type进行集中认证和授权,从而获得access_token,而这个token是受其他微服务信任的,我们在后续的访问可以通过access_token来进行,从而实现了微服务的统一认证授权。客户端根据约定的ClientID、ClientS...
2019-12-04 17:18:27
1844
原创 docker 常用命令
查看所有镜像docker images查看所有运行中的容器docker ps查看所有容器docker ps -a获取所有容器ip$ docker inspect --format=’{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}’ $(docker ps -aq)查看容器内部日志$ dock...
2019-11-21 14:00:30
132
原创 springboot 分布式session管理
介绍在集群项目中如果使用到session,就需要考虑如何时session在各个服务器节点保持一致,其实在和很多项目中都使用token,token简单来说有点有点像session的sessionI的,存放于redis缓存中,srping session管理其实也是一样,会将会话信息存放在redis中管理。下面我们介绍使用办法springBoot session 分布式解决方案pom.xml ...
2019-11-15 14:36:48
391
原创 IDEA快捷键
总是把idea和eclipse快捷键搞混,在这里做个记录,想不到哪些做个记录idea快捷键:trycatch快捷键: crtl+alt+t大小写转换快捷键:crtl+shift+u
2019-11-13 10:47:01
2010
原创 java堆内存分配垃圾回收
堆内存划分java堆内存划分为新生代,老年代。一般jvm默认情况下新生代占用堆空间的1/3,老年代占用堆空间的2/3.新生代又分为Eden区,from survivor区,to survivor区,默认情况Eden区占用新生代的8/10,from survivor 和to survivor各自占用1/10.from survivor 和to survivor位置不是固定,它们经常是来回变化交换...
2019-11-01 14:52:12
572
原创 SpringBoot 参数校验
介绍通常我们在写后台接口时,通常都需要校验参数,虽然前台也会校验参数,但是我们不能相信的前台的校验,因为前台参数可以人为篡改,所以后台必须自己校验参数。在校验中,通常会按如下方式进行校验 if (StringUtils.isEmpty(userInfo.getUsername())) { return "账号不能为空"; } if...
2019-10-31 15:15:50
335
1
原创 Swaggerui提示Unable to infer base url.
错误提示:Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway. The base url is the root of where all the swagger resources are served....
2019-10-23 22:13:07
502
原创 java虚拟机运行时数据区域
虚拟机运行时数据区域1 线程隔离的数据区虚拟机栈 本地方法栈,程序计数器 执行引擎,数据接口2线程共享的数据区方法区 和堆1.1 程序计数器程序计数器时一块较小的内存空间,当前线程执行字节码的行号指示器。执行的是java方法,则记录的是正在执行虚拟机字节码的指令地址执行的是Native方法,这个计数器的值则为空此内存区域是唯一一个没有任何规定OutOfMemoryError...
2019-10-18 14:30:50
141
原创 of ORDER BY clause is not in SELECT list, references column 'm2mesim.m.order_num' which is not in SE
今天启动以前的项目突然报错,数据库sql有问题,问题如下; uncategorized SQLException for SQL []; SQL state [HY000]; error code [3065]; Expression #1 of ORDER BY clause is not in SELECT list, references column 'm2mesim.m.order_n...
2019-09-24 16:00:05
942
原创 SpringCloudSleuth zipkin分布式链路监控与追踪
分布式链路监控与追踪产生背景在微服务系统中,随着业务的发展,系统会变得越来越大,那么各个服务之间的调用关系也就变得越来越复杂。一个 HTTP 请求会调用多个不同的微服务来处理返回最后的结果,在这个调用过程中,可能会因为某个服务出现网络延迟过高或发送错误导致请求失败,这个时候,对请求调用的监控就显得尤为重要了。Spring Cloud Sleuth 提供了分布式服务链路监控的解决方案。下面介绍 S...
2019-09-23 10:47:03
167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人