- 博客(16)
- 收藏
- 关注
原创 记录一次请求慢的问题排查
背景 最近测试同事反馈测试环境卡顿频繁问题,第一时间反应可能是数据量大,查询慢所导致,但是使用Jmeter压测后发现并无异常,于是有了下面的记录。问题排查过程①重现场景(使用的浏览器为chrome) 经过一顿页面点击操作之后,果然出现了有一个接口返回很慢,但是该接口只是获取部门结构树,单表查询不存在查询慢的问题。F12查看该接口的请求信息,切换到 Timing tab,发现该请求的耗时如下:发现接口耗时最长在Stalled过程,锁定是建立链接发生了错误,接下来使用Wires...
2021-03-17 16:24:29 1177
转载 消息中间件的技术选型
现在市面上的消息中间件种类很多,常用的大致有4种,分别是Kafka、ActiveMQ、RabbitMQ、RocketMQ。那么Kafka、ActiveMQ、RabbitMQ、RocketMQ都有什么优缺点?怎么技术选型呢?特性 ActiveMQ RabbitMQ RocketMQ Kafka 单机吞吐量 万级,比 RocketMQ、Kafka 低一个数量级 同 ActiveMQ 10 万级,支撑高吞吐 10 万级,高吞吐,一般配合大数据类的系统来进
2021-03-15 23:14:06 195
原创 SpringBoot集成Redis作为缓存框架详解
SpringBoot项目使用Redis作为缓存框架,清除缓存支持通配符*步骤:1.以下是需要导入的依赖<--!连接池 --><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId></dependency><dependency> <group
2020-12-30 11:25:14 638
原创 Mysql 常用操作
Mysql 常用操作1.导入和导出sql文件①导出整个数据库到某个文件mysqldump -u username -p database-name > outfilename.sql②导出一个表mysqldump -u username -p database-name tablename >outfile.sql ③导出一个数据库结构//-d 不导出数据//-add-drop-table 在每个建表语句前添加drop table if existmysq
2020-09-11 14:38:12 166
原创 Docker常用操作指令
Docker常用操作指令1.镜像-Images①拉取镜像docker pull image-name:tag //如果不指定tag则默认拉取的是最新的镜像②查看docker中已拉取的镜像docker images ③推送镜像到私有仓库//无论是推送镜像到私有仓库还是拉取,都需要先进行登录,以阿里云镜像仓库为例,输入密码即可docker login --username=[阿里云账户全名] registry.cn-shanghai.aliyuncs.com//使用命令将
2020-09-11 09:55:06 303
转载 Nginx如何做到高性能支撑起高并发
Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。本文从底层原理分析 Nginx 为什么这么快!Nginx 的进程模型Nginx 服务器,正常运行过程中: 多进程:一个 Master 进程、多个 Worker 进程。 Master 进程:管理 Worker 进程。对外接口:接收外部的操作(信号);对内转发:根据外部的操作的不同,通过信号管理 Worker;监控:监控 Worker 进程的运行状态,Worker 进程异常终止后,自动重启 Worker ...
2020-06-06 14:52:57 563
原创 关于JVM调优的那些事
前言:从不生产理论,只做理论的搬运工。本篇理论来源:https://tech.meituan.com/2017/12/29/jvm-optimize.htmlGC优化不能解决一切性能问题,它是最后的调优手段。基本思路 CPU使用率较高,频繁地进行GC且GC时间长。那么我们就需要进行JVM调优,尽可能使每一次GC回收更多的对象。这里又可以分为两小块进行讨论:①Min...
2020-04-28 16:19:56 159
原创 使用easypoi优雅进行数据导出到excel
最近公司有好几个需求都是关于导出统计报表到excel,并发送邮件到对应负责人,纠缠了一番之后,也对导出数据到excel有了一定经验,不至于每做一个导出功能就要写一大堆重复代码。以下是最近几天对easypoi的一些使用经验和心得。 首先是依赖的问题,我们需要添加以下三个easypoi的包,具体的作用也就见名思意了,不做解释。<dependency> ...
2020-04-27 11:08:02 2997
原创 Docker搭建Nginx反向代理多个Tomcat
在容器化技术盛行的现在,掌握使用Docker部署项目已是必须技能,接下来记录一次使用Docker搭建Nginx并反向代理到多个Tomcat,在开始刚之前,先来补充一些关于Nginx的理论知识。(在此之前需要基础掌握Docker)关于Nginx 我们通常使用Nginx来反向代理我们的静态资源和各种web服务,当然它也具有邮件服务等功能,不过那部分本人少用,在这里就...
2020-04-09 17:08:31 450
原创 CentOS7安装Mysql
1.准备工作由于CentOS7默认的yum仓库里面并没有Mysql,默认用的是MariaDB,因此使用yum install mysql安装的并不是我们想要的mysql,所以我们需要手动添加Mysql的仓库地址。1.添加mysql仓库,以下是5.7版本:rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-1...
2020-03-20 11:22:45 97
原创 Centos7搭建Dcoker+Nginx+Jenkins
1.搭建Docker前提:首先需要将服务器的软件源配置为国内的,清华或者阿里的数据源均可,清华的请看https://mirrors.cnnic.cn/help/centos/然后执行命令安装Dockeryum -y install docker#执行完后,查看对应的version,出现即安装成功docker versionClient: Version: 1....
2020-03-18 14:20:51 205
原创 VMWare安装CentOS7详细教程
背景:最近学习到了使用Jenkins进行项目的持续集成,考虑到windows环境下学习环境的局限,需要CentOS的系统,考虑到阿里云服务器成本较高,采用自己使用VMWare搭建CentOS7来完成1.虚拟机的创建打开安装好的VMWare,点击“创建新的虚拟机”,如图:接下来选择自定义或者典型都可,我选择的是典型,进入下一步,然后选择稍候安装操作系统,继续进入下一步然...
2020-03-17 15:07:17 180
原创 使用Jaspersoft显示table,十分详细
背景最近在公司做打印工作台的功能模块,前期基本都是打印一些条形码、文字、logo等,做到中期,需要显示表格,这可让我犯了愁,没搞过呀,先去看下官方文档。好,无获而归。百度、google很多博文也都写的不清不楚,然后只能随便看一篇博文来作为参考。一下踩了不少坑,但不一一阐述。直说步骤,方便以后回来查看。准备工作工具:Jaspersoft Studio1.首先是制作相关的jrxml,直...
2019-12-07 15:15:52 5382 2
原创 volatile如何保证内存的可见性
目录(一)内存可见性(二)防止指令重排(三)总结(四)volatile和synchronized的区别(一)内存可见性JVM内存模型:主内存和线程独立的工作内存 Java内存模型规定,对于多个线程共享的变量,存储在主内存当中,每个线程都有自己独立的工作内存(比如CPU的寄存器),线程只能访问自己的工作内存,不可以访问其他线程的工作内存。 工作内存中保存了主内存共享变量...
2019-09-27 17:09:42 1916 1
原创 Java线程池的正确使用姿势
关于Java Executor的一些个人总结线程池的正确使用关于线程池大小的设定:关于拒绝策略,默认采用的是丢弃策略DiscardPolicy:Executor框架是从JKD1.5之后开始引入,位于java.util.concurrent包下,其内部使用了线程池机制,控制线程的创建、执行和关闭,简化了并发变成的操作。ExecutorExecutor是一个接口...
2019-09-21 15:32:23 196
转载 乐观锁和悲观锁
悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占...
2019-09-12 10:57:55 102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人