开发总结
文章平均质量分 69
Guitarf
blog: http://blog.loveyx815.cn
github: https://github.com/rainandsunshine
展开
-
Mysql踩坑——Group by+Order by带来的问题
Mysql踩坑——Group by问题背景最近上线的一个统计月活用户的需求,看起来一个定时任务+几句sql统计就一步到位结束了。近几日发现生产数据没我的月活数据,于是就排查起来。问题知道,那下一步肯定就是去排查了。排查思路先确定是不是任务挂了导致数据没跑出来看了下生产的表,乍一看数据都挺正常的。然后去筛一下自己的记录,发现近几日都没有我的月活。于是上CAT服务监控系统去看下有没有相关的日志,发现有一条SQL报了超时错误。知道错误在哪,然后正常的就是复现问题了因为这种超时错原创 2021-04-30 16:47:27 · 790 阅读 · 1 评论 -
使用SHOW WARNINGS优化SQL
SHOW WARNINGS优化SQL前言:记录下自己实际coding过程中遇到的问题,在度娘一番搜索也没发现啥好的解决方法。网上关于explain执行计划关于ref=func的讨论也是比较少的,所以只能求助于MySQL官网的文档,上面会有比较全面的解释。1.问题发现业务上有一段SQL需要在 in 的里面使用UNION查询,但是实际的效率随数据量的变化而变化。优化前EXPLAIN EXTENDED SELECT * FROM A WHERE id IN ( SELECT原创 2021-02-02 14:11:04 · 659 阅读 · 0 评论 -
ElasticSearch+Logstash+Kibana初探
ELK环境部署相关部署的版本需要统一,否则可能会有兼容性问题,使用6.8.0.外网访问需要放行 5601 9200 9300 三个端口ElasticSearch 与Logstash不建议部署同台服务器默认中间件都安装在 /usr/local/elk下(没有的话新建目录 mkdir /usr/local/elk),点此处下载(链接: https://pan.baidu.com/s/1J-fOALTN4YzbV-gqJZ_HJQ 密码: t133)1. ElasticSearchES不原创 2020-10-08 16:16:30 · 262 阅读 · 0 评论 -
JVM-Java内存模型(JMM)
文章目录Java内存模型(JMM)1. 主内存与工作内存2. 内存间交互操作3. Volatile登场4. 先行发生原则(happents-before)Java内存模型(JMM)JMM 可以屏蔽掉各种硬件和操作系统的内存访问差异,让Java程序在各个平台下都能达到一致的内存访问效果。1. 主内存与工作内存JMM规定所有的变量(包括实例变量、静态字段、构成数组对象的元素)都存储在主内存中,每个线程还有自己工作内存。线程工作内存保存了被该线程使用的变量的主内存的副本拷贝(不会拷贝整个对象,可能原创 2020-05-14 17:38:00 · 274 阅读 · 0 评论 -
JVM-类加载机制初识
文章目录JVM-类加载机制初识1. 什么是类加载机制?2. 类加载的过程1. 加载2. 验证3. 准备4. 解析5. 初始化3. 类加载器1. 类与类加载器2. 双亲委派模型JVM-类加载机制初识1. 什么是类加载机制?我们所写的Java代码在经过编译后悔产生对应的class字节码文件,JVM把class文件加载到内存中,对数据进行校验、转换解析和初始化过程,最终形成可以被JVM直接使用的Java类型。类加载的时机整个的生命周期:加载-验证-准备-解析-初始化-使用-卸载解析的过程不一定原创 2020-05-11 23:10:04 · 209 阅读 · 0 评论 -
Nginx搭建&不同域名代理同一服务器不同服务
Nginx搭建、代理服务一. 环境搭建下载nginx链接:https://pan.baidu.com/s/1b6PttHknU6bnxObJIYajyg提取码:ce8y也可以在线安装(我是直接离线安装的)wget http://nginx.org/download/nginx-1.14.2.tar.gz解压下载完后,通过ftp软件把我们刚刚下载的包传到我们的服务器上去接...原创 2020-05-05 22:49:21 · 1575 阅读 · 0 评论 -
Java并发
Java并发一、基础概念线程和进程的区别:进程是指处于运行过程中的程序,并且具有一定的独立功能。进程是系统进行资源分配和调度的一个单位。当程序进入内存运行时,即为线程。一个进程可以拥有多个线程组合,线程是组成进程的基本单位。线程状态New(新创建)Runnable(可运行)Blocked(被阻塞)Waiting(等待)Time waiting(计时等待)Termin...原创 2020-04-28 21:29:14 · 145 阅读 · 0 评论 -
Java泛型设计
Java泛型设计为什么要去设计泛型?为了可以编写被很多不同类型对象所重用的代码泛型是如何定义?1. 泛型类: class ClassNameT是一个类型变量,可以是任意的类型,也可以有多个类型比变量。类型变量使用大写形式,使用E表示集合的元素类型,K和V分别表示关键字和值得类型,是一个Map关系。T(需要时还可以用临近的字母U和S)表示任意类型2. 泛型方法: T ...原创 2020-04-23 19:11:11 · 288 阅读 · 0 评论 -
记录MySQL启动失败/宕机-Cannot allocate memory for the buffer pool
记录MySQL启动失败/宕机-Cannot allocate memory for the buffer pool场景是服务使用的过程中,发现tomcat都起不起来,查看tomcat日志发现是数据库连接异常。接着就是一顿操作了排查思路:用本地工具尝试连接,看看是不是web环境有问题或者MySQL驱动问题。结果很显然不会是我的代码和环境问题。用工具连接也显示失败,那就会是MySQL...原创 2020-04-23 00:12:40 · 422 阅读 · 0 评论 -
Java异常-受查与非受查
Java异常-受查与非受查所有的异常都是由Throwable继承而来,下级分为Error和ExceptionErrorError表示Java运行时系统的内部错误和资源耗尽错误,不应该抛出该类型的错误,只能通知用户,尽力安全关闭程序。Exception该分支派生出RuntimeException和其他异常(如I/O错误之类)受查与非受查异常非受查异常派生于...原创 2020-04-19 14:58:11 · 599 阅读 · 0 评论 -
设计模式-观察者模式
文章目录设计模式-观察者模式1. 场景描述2. 系统设计设计模式-观察者模式观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,他的所有依赖者都会收到通知并自动更新1. 场景描述通过气象站监测的数据,对外界进行公告展示。也就是气象站统计好数据后,确认修改完,公告那边也会收到改变后的数据。2. 系统设计首先定义两个接口,Subject主题和Observer观察者//主...原创 2020-04-18 16:03:50 · 159 阅读 · 0 评论 -
合并两个list元素报错
合并两个list元素报错背景:做题的时候需要合并连个list,本来直接用list.addAll()觉得没啥问题,结果当然会会报错。报错信息显示java.lang.UnsupportedOperationException不能操作异常。问题已经知道,下面看看本质是啥吧!直接贴代码 List<String> list = Arrays.asList(list1); ...原创 2020-02-16 15:16:50 · 525 阅读 · 0 评论 -
JVM复习-内存区域与对象创建
JVM复习基于JDK1.7的研究一、Java内存区域与内存溢出程序计数器指示当前线程所执行的字节码的行号,编译字节码执行的命令,进而程序才能一步步的执行下去。Java虚拟机栈线程私有,生命周期与线程相同。每个方法在执行时会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等。方法从调用到执行完成的过程中,就饿对应着一个栈帧在虚拟机栈中入栈到出栈的过程。**局...原创 2020-02-08 00:34:41 · 158 阅读 · 0 评论 -
@Configuration注解中引用bean
@Configuration注解中引用bean背景介绍:需要在一个配置类里面引用一个bean直接上代码@Configuration@ComponentScan(value = "cn.loveyx815.rocketmq.mqtransaction.message")public class MQConfig { @Bean(name = "prooducer", init...原创 2020-02-05 18:11:08 · 2146 阅读 · 0 评论 -
maven项目pom.xml报错(非配置问题)
maven项目pom.xml报错expected START_TAG or END_TAG not TEXT (position: TEXT seen …\ua0\r\n <d… @60:11) less… (Ctrl+F1)Inspection info: Inspects a Maven model for resolution problems.这种就是从别的地方复制粘贴的d...原创 2020-02-05 11:42:10 · 357 阅读 · 0 评论 -
String、StringBuilder做为实参在方法中修改值的问题
String、StringBuilder做为实参在方法中修改字符串值的问题场景介绍:需要在一个方法中同时修改两个字符串的值,因为不想传回一个数组,所以就尝试下直接修改字符串对象(地址引用)下面介绍下几种修改方式: public static void changeString(String originStr){ originStr=new String("st...原创 2019-12-26 00:08:39 · 1426 阅读 · 0 评论 -
用Redis缓存Web网页的分页数据
业务场景:把学生选课系统中学生群体数据放入缓存中,减少对数据库的访问,提高系统的负载能力。 实现思路:1.在用户首次登陆选课系统时,会先判断Redis缓存中是否有该缓存(这里使用的是Redis的zset数据结构来实现)。 补充:由于zset结构本身没有判断键是否存在的命令,我这里是用的是zcard(key)。zcard函数返回的是这个键对应的缓存集中的条数。zset数据结构补充:Red...原创 2018-08-16 18:22:42 · 963 阅读 · 0 评论 -
在require.js中加载百度地图
1.先导入百度地图的API.百度地图不支持amd模式加载,使用require.js加载必须设置异步async插件进行加载,否则会出错 not found BMap(好像地图的导入都需要异步加载)若在require.js中采用<script src="百度地图的api路径"></script>导入地图的api实习上在导入过程中会转变成documen...原创 2018-09-10 22:08:57 · 1040 阅读 · 0 评论 -
Springboot中Redis学习(事务、Lua、跨域)持续更新
Redis事务Lua脚本Lua脚本在Redis中具备原子性,可以保证数据一致性的高并发环境。Spring中提供了RedisScript接口,DefaultRedisScript为他的实现类RedisScript接口:public interface RedisScript<T> { //获得脚本的sha1 String getSha1(); /...原创 2019-08-04 22:34:38 · 186 阅读 · 0 评论 -
前端页面元素内容获取方式
主要列举val(),html(),innerHTML()的使用(也是方便自己回顾,刚开始用的少,没太注意区分)1.val()获取html元素的value值<!-- js获取 -->var v=$("#radio0").val();<!--html部分正文 --><input type="radio" id="radio0" value="0"&原创 2018-08-16 10:17:24 · 2037 阅读 · 0 评论