- 博客(34)
- 收藏
- 关注
转载 CPU飙高,频繁GC,怎么排查?
本文转自处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路。对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,...
2020-01-15 10:17:21 2464
转载 CAP原则
原文地址:http://www.ruanyifeng.com/blog/2018/07/cap.html分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。本文介绍该定理。它其实很好懂,而且是显而易见的。下面的内容主要参考了 Michae...
2019-12-26 14:28:11 383
原创 java单元测试之Mock测试编写
mock框架官方文档地址:https://javadoc.io/static/org.mockito/mockito-core/3.2.0/org/mockito/Mockito.html#verification1. Mock一个对象 //Let's import Mockito statically so that the code looks clearer import sta...
2019-12-06 17:05:08 1660
原创 mybatisplus-generator 自动生产实体类
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.config.DataSourceConfig;impor...
2019-10-10 10:59:33 4216
原创 树形表实现 bootstrap-table + treegrid
一 . 首先展示一张效果图二. 简单代码实现直接在项目中复制粘贴以下代码即可使用相关资料:jquery-treegrid 官网https://www.bootcdn.cn/jquery-treegrid/<!DOCTYPE HTML><html lang="zh-cn"><head> <meta charset=...
2019-09-26 10:33:05 1579 1
转载 [转] 查看CPU使用率 top命令详解
一top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前 台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间 对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.说明:前五行都统计系统整体信息的 下...
2019-09-05 09:41:32 4292
转载 Java 代码优化
作者:萌小Q来源:https://www.cnblogs.com/Qian123/p/6046096.html1、尽量指定类、方法的final修饰符带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法...
2019-08-28 17:18:52 322
转载 Java 8 中 Date与LocalDateTime、LocalDate、LocalTime互转
Java8中 java.util.Date 类新增了两个方法,分别是from(Instant instant)和toInstant()方法// Obtains an instance of Date from an Instant object.public static Date from(Instant instant) { try { return new ...
2019-03-05 12:09:31 202
转载 阿里云Redis开发规范
一、键值设计1. key名设计(1)【建议】: 可读性和可管理性以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:idugc:video:1(2)【建议】:简洁性保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视,例如:user:{uid}:friends:messages:{mid}简化为u:{uid}:fr:m:{mi...
2019-03-05 09:17:00 200
转载 MySql避免重复插入记录方法
本文为备忘转载:案一:使用ignore关键字如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用:INSERT IGNORE INTO `table_name` (`email`, `phone`, `user_id`) VALUES ('test9@163.com', '99999', '9999');这样当有重复记录就会忽略,执行后返...
2019-02-27 19:46:43 317
转载 淘宝Tedis组件
文章来源如下,本文只做技术分享,留存,如有侵权留言联系,立即删除.作者:小程故事多链接:https://www.jianshu.com/p/0c6f91fb4c8c來源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。 淘宝的Tedis组件究竟是个啥呢?可能有一些朋友没有听过这个名字,有一些朋友会经常使用,那么今天我就来和大家深入分析一下,它...
2019-02-22 12:11:57 493
转载 分库分表
为什么要分库分表?(设计高并发系统的时候,数据库层面该如何设计?)说白了,分库分表是两回事儿,大家可别搞混了,可能是光分库不分表,也可能是光分表不分库,都有可能。我先给大家抛出来一个场景。假如我们现在是一个小创业公司(或者是一个 BAT 公司刚兴起的一个新部门),现在注册用户就 20 万,每天活跃用户就 1 万,每天单表数据量就 1000,然后高峰期每秒钟并发请求最多就 10。天,就这...
2019-01-17 15:55:11 515
转载 redis 的雪崩和穿透
缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没用什么特别的方案来处理这个故障,DBA 很着急,重启数据库,但是数据库立马又被新的流量给打死了。这就是缓存雪崩。大约在 3 年前,国内...
2019-01-17 11:18:45 318
转载 更新数据时redis缓存与数据库数据不一致的问题
最初级的缓存不一致问题及解决方案问题:先修改数据库,再删除缓存。如果删除缓存失败了,那么会导致数据库中是新数据,缓存中是旧数据,数据就出现了不一致。解决思路:先删除缓存,再修改数据库。如果数据库修改失败了,那么数据库中是旧数据,缓存中是空的,那么数据不会不一致。因为读的时候缓存没有,则读数据库中旧数据,然后更新到缓存中。比较复杂的数据不一致问题分析数据发生了变更,先删除了缓存,...
2019-01-17 10:52:35 14439 3
原创 redis 过期策略
redis 过期策略是:定期删除+惰性删除。所谓定期删除,指的是 redis 默认是每隔 100ms 就随机抽取一些设置了过期时间的 key,检查其是否过期,如果过期就删除。假设 redis 里放了 10w 个 key,都设置了过期时间,你每隔几百毫秒,就检查 10w 个 key,那 redis 基本上就死了,cpu 负载会很高的,消耗在你的检查过期 key 上了。注意,这里可不是每隔 1...
2019-01-16 19:12:32 776
原创 freemarker中map遍历
freemarker中map遍历获取值后台数据: HashMap<String, String> map = new HashMap<>(); map.put("adf","空间"); map.put("xxx","空间2"); map.put("jjj","空间3"); model.addAttribute
2019-01-07 16:45:40 2266
原创 springBoot中info等级通过druid打印sql
我的springBoot是使用logback来输出日志的.application.yml中log相关配置如下:logging: pattern: console: "%d{yyyy-MM-dd HH:mm:ss.SSS} %clr(%5p) %clr([%15.15t]){cyan} %clr(%X{__traceId}){magenta} %clr(%-40.40logge...
2019-01-03 14:39:00 9632
原创 亲属计算规则算法--java实现(关键算法摘要)
一个简单的亲属关系计算算法实现package com.zifamily.zfapp.sns;import org.apache.commons.collections.CollectionUtils;import org.junit.Before;import org.junit.Test;import java.util.ArrayList;import java.util...
2018-12-14 17:19:12 1750
原创 亲属计算规则算法--js实现(关键算法摘要)
在github上找个一个比较好的计算亲属关系的算法,核心代码如下:!function (root, factory) {if (typeof module === 'object' && module.exports){module.exports = factory();}else{root.relationship = factory();}}(typeof ...
2018-12-14 17:17:03 1522
原创 SpringBoot注解缓存@Cacheable,@CachePut,@CacheEvict,@Caching
JSR107Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry和 Expiry。• CachingProvider定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可以在运行期访问多个CachingProvider。• CacheManager定义了创建、配置、获取、管理和控制多个唯...
2018-11-29 11:20:44 509
原创 SpringBoot之spring-data-redis
1.自定义CacheManager 2.X版本自定义序列化器的配置 @Bean public CacheManager cacheManager(RedisConnectionFactory factory) { RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheCon...
2018-11-28 19:38:57 261
原创 mybatis-plus
推荐简书:https://www.jianshu.com/p/ceb1df475021注解:公共字段自动填充:@TableField(fill = FieldFill.INSERT_UPDATE)//插入和更新时填充
2018-11-27 17:57:26 223
原创 ajax异步请求的创建方式
方式一---普通ajax请求$.ajax({ url: url, type: 'POST', data: {"id":rewardId,"expireDate":expireDateUpdate,"orderNumStr":orderNum,"effectDate":effectDateUpdate}, dataType: "json", success...
2018-11-12 11:21:05 197
转载 Linux下安装Java(JDK8)
一、文件准备 1.1 文件名称 jdk-8u121-linux-x64.tar.gz 1.2 下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二、工具准备 2.1 Xshell...
2018-10-26 09:18:20 173
原创 java数字字符串自增
要求:输入"0022"输出"0023",输入非纯数字字符串提示.public class test1 { public static void addValue(String str){ int index = str.lastIndexOf("0"); int temp =0; //以0开头的 ...
2018-10-13 21:03:01 3780
转载 mybatis在xml文件中处理大于号小于号的方法
第一种方法:用了转义字符把>和<替换掉,然后就没有问题了。SELECT * FROM test WHERE 1 = 1 AND start_date &lt;= CURRENT_DATE AND end_date &gt;= CURRENT_DATE附:XML转义字符 第二种方法:<![CDATA[ when min(...
2018-10-13 20:28:55 577
原创 foreach遍历的底层原理
foreach遍历集合类型和数组类型底层实现的不同集合类型的遍历本质是使用迭代器实现的(list,map,set) 数组的遍历是通过for循环来实现的(普通数组)扩展:遍历集合的时候移除某个数据: ArrayList<Integer> list = new ArrayList<>(); list.add(1); list.add(2); ...
2018-10-12 21:08:08 4449
原创 MySql面试练习题
原帖链接:http://bbs.csdn.net/topics/280002741表架构Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表建表语句 CREATE TABLE student ( s# INT,...
2018-10-10 10:17:51 262
原创 Linux虚拟机安装后没有IP地址
安装完虚拟机之后 ifconfig 发现没有ip地址怎么办呢?下面来解决下这个问题:1. 执行命令:1)cd /etc/sysconfig/network-scripts/2)vi ifcfg-ens333)把ONBOOT改成yes4)保存 : wq!5) serivce network restart6)ip addr执行以上命令之后应该可以解决问...
2018-10-01 16:44:43 3022 1
转载 Eclipse/ tomcat 实现热部署和热启动
1、 热部署:就是容器状态在运行的情况下重新部署整个项目.在这种情况下一般整个内存会清空,重新加载.简单来说就是Tomcat或者其他的web服务器会帮我们重新加载项目.这种方式可能会造成session丢失等情况。2、热加载:就是容器状态在运行的情况下重新加载改变编译后的类.在这种情况下内存不会清空,sessin不会丢失,但容易造成内存溢出,或者找不到方法。因为内存无法转变成对像. 一般改变类的...
2018-09-28 11:14:12 5116
原创 String“+”与StringBuffer/StringBuilder 对象的append方法
该题来自华为。 字符串是Java程序中最常用的数据结构之一。在Java中String类已经重载了"+"。也就是说,字符串可以直接使用"+"进行连接,如下面代码所示:1.String s = "abc" + "ddd"; 但这样做真的好吗?当然,这个问题不能简单地回答 yes or no。要根据具体情况来定。在 Java 中提供了一个StringBuilder类(这个...
2018-09-19 16:15:05 1116
原创 ==和equals的区别
equals和== 最大的区别是一个是方法一个是运算符。 ==:如果比较的对象是基本数据类型,则比较的是数值是否相等;如果比较的是引用数据类型,则比较的是对象的地址值是否相等。 equals():用来比较方法两个对象的内容是否相等。 注意:equals 方法不能用于基本数据类型的变量,如果没有对 equals 方法进行重写,则比较的是引用类型的变量所指向的对象的地址。...
2018-09-19 14:29:01 156
原创 list之subList(int fromIndex, int toIndex)
1.用法 list.subList(int fromIndex, int toIndex) 返回list中指定下标的元素组成的list集合,左闭右开(包括fromIndex元素,不包括toIndex).2.注意点 返回的新的集合指向原有集合,修改新的集合会影响原有集合的内容.3.决解方案1)新建一个新的集合 ArrayList<String>...
2018-07-05 13:51:34 2761
原创 Jedis操作Redis方法API
Jedis操作Redis方法API1. String set(String key, String value);/** * 存储数据到缓存中,若key已存在则覆盖 value的长度不能超过1073741824 bytes (1 GB) * * @param key * @param value * @return */ Strin...
2018-05-23 09:57:21 488
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人