自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 生产环境Mysql导致CPU飙高的问题

1、分析show processlist 结果中的info查看sql问题,首先使用explain查看执行计划效率,如果效率无问题,查看是否调用频繁比如循环中不停调用。4、打开jstack.log 找到步骤3中的十六进制线程号 进行分析 搜索:nid= 找到线程名和代码位置。出现cpu飙高时使用先试用top命令查看进程,确定是java进程还是mysql 找到进程号 2、分析慢sql使用explain查看执行计划,效率有问题优化sql、优化索引。3、是否有事务死锁,如果有查看原因。

2023-05-30 09:51:27 1170

原创 CPU飙高解决思路

出现cpu飙高时使用先试用top命令查看进程,确定是java进程还是mysql 找到进程号。

2023-04-09 13:22:22 512

原创 Mac M1芯片Docker安装MySQL

Mac M1芯片Docker安装MySQL1、下载docker desktop apple chip2、拉取镜像3、运行实例4、修改配置

2022-08-20 21:56:36 673

原创 Feign源码解析

Feign如何注入,注入后如何通过动态代理调用。

2022-06-02 18:16:51 304 1

原创 MySQL索引初探

索引数据结构二叉树红黑树Hash表对索引的key进行一次hash计算就可以定位出数据存储的位置很多时候Hash索引要比B+ 树索引更高效仅能满足 “=”,“IN”,不支持范围查询hash冲突问题B-Tree多路树B+Tree非叶子节点不存储data,只存储索引(冗余),可以放更多的索引叶子节点包含所有索引字段叶子节点用指针连接,提高区间访问的性能聚集索引和非聚集索引ibd: InnoDB Index+DataMYI : MyISAM IndexMYD:

2021-05-26 11:55:34 108

原创 Java基础回顾

为什么要学习java1、面向对象(封装、继承、多态)2、跨平台(jvm)3、生态好java环境安装 环境变量配置官网下载对应的环境的包(1)“JAVA_HOME”,变量值是你的电脑JDK的安装路径,我的是"D:\java\tool\java1.8\JDK"(2)“Path”,在原变量值的最后面加上”;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”(3)”CLASSPATH”,变量值”.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.j..

2021-05-15 14:36:20 136

原创 阿里本地生活4面

1、谈谈最近的一个项目。说一说如何架构的?2、说一说你在这个项目的核心工作,然后一系列问题。如何把你的项目抽象为多个领域?3、多线程的理解,线程池如何设置合理的线程数?为什么要这样设置?4、nginx的理解,nginx反向和正向代理5、redis是单线程的说说你如何理解单线程但又是高并发。说说redis fork进程6、说一说SpringCloud是如何把负载均衡和熔断整合的?7、多方接口不一样你们是如何处理的?8、说一说雪花算法。9、如何提高mysql效率,如何设置合理的索引?....

2021-04-17 15:36:48 281

原创 centos7-jenkins部署java应用

使用docker的jenkins自动部署java启动jenkins服务首先拉镜像docker pull启动# 创建挂载文件夹mkdir -p /usr/local/docker-volume/jenkins #运行docker实例docker run \ --name my-jenkins -u root \ --rm \ -d \ -p 8080:8080 \ -p 50000:50000 \ -v /usr/local/docker-volume/jenki

2021-02-02 23:51:22 162 1

原创 MongoTemplate通过id查询为null

使用spring-data-mongodb通过id查询返回为null的情况配置:spring.data.mongodb.uri=mongodb://test:123456@${ipAddr}:27017/mrqc?connectTimeoutMS=10000&authSource=admin版本:<dependency> <groupId>org.springframework.data</groupId> <artifac

2021-01-08 16:55:38 3149 4

原创 Centos7离线安装GCC

gcc是编译c语言的一个工具,一般来说都会存在,但是有些情况镜像安装没选择,可能系统就没带gcc工具。我们在安装redis和nginx的时候又必须要gcc环境。今天就说下离线环境的gcc安装。#查看gcc版本号gcc -v首先下载gcc的rpm压缩包(这个是我在iso镜像文件解压后的Packages目录下获取的,这里如果是centos7可以直接用)百度网盘下载gcc.tar.gz: https://pan.baidu.com/s/1ixDi3BZ1O7ImUObrbf40Rw密码: 9vic

2020-09-21 22:26:58 3309 2

原创 JVM整体认知

JVM组成大致为三个部分(Hospot & jdk1.8):1、类加载子系统:主要完成class文件加载到内存区域2、执行子系统:执行代码3、运行时数据区:主要内存区域,包括虚拟机栈、程序计数器、堆、方法区、本地方法栈

2020-08-07 13:12:04 3449

原创 记一次线上环境无响应的问题分析和解决(OOM?CPU飙高?)

根据jstat数据分析,每次预览都会进行一次YoungGC,偶尔两次。第三次点击伴随一次FullGC。从数据中大致判断一次预览会使用600M左右的内存。这是一个非常庞大的内存使用了。使用jmap分析类实例数和内存占用大小。...

2020-07-20 15:50:32 7188 6

原创 使用Spring的BeanPostProcessor优雅的实现工厂模式

最近学习Spring的源码,发现一个利器BeanPostProcessor。这个后置处理器可以在bean初始化前后对bean进行操作。我们可以在初始化的时候对自己想要的bean进行缓存,进而实现自己需要处理的逻辑。背景当我们需要根据类型调用接口不同实现的时候,我们可以使用工厂模式实现。下面说下博主遇到过的两次需要使用工厂的场景。场景一:当有一个模块,我们需要根据数据库的类型实现不同的的sql。我们此时需要定义一个接口然后每一种数据库实现不同的sql。在调用时根据当前的数据库类型调用对应的实现类。

2020-07-06 22:11:30 1930 6

原创 使用Gateway自定义负载均衡过滤器

通过重写LoadBalancerClientFilter的choose方法实现自定义过滤功能gateway其实无非就是不同的过滤器,然后对请求进行处理,和zuul类似。gateway自带了很多过滤器。过滤器分为两种1、GlobalFilter 。顾名思义,全局过滤器,所有请求都会走的过滤器。常见的自带过滤器LoadBalancerClientFilter(负载均衡过滤器,后面我们就是修改这个地方)。2、GatewayFilter。网关过滤器,该过滤器可以指定过滤的条件,只有达到了条件的才进入该过滤器。

2020-07-03 14:47:40 3357 6

原创 SpringBoot使用集成kafka实现生产与消费

集成kafka之前需要安装kafka。详见上一篇博客安装zookeeper+kafka。本文不再赘述无网络环境的Centos7中安装Docker集成kafkapom.xml引入包<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId></dependency>

2020-06-30 14:37:57 824 4

原创 无网络环境的Centos7中安装Docker

最近公司应用需要逐渐实现docker部署。由于各种原因不能使用外网,现在记录离线版本docker安装。准备安装包首先进入官网下载二进制安装包https://docs.docker.com/install/linux/docker-ce/binaries/#install-static-binaries下载二进制包 https://download.docker.com/linux/static/stable/选择自己需要的版本,此处我选择最新的ce版本,如果下载过程比较慢,可以是用迅雷下载,速

2020-06-24 23:35:21 2721 2

原创 Mybatis是如何集成到Spring容器中的

Mybatis是一个非常常用的orm框架

2020-06-20 18:28:20 928

原创 JAVA面试之HashMap刨根问底

HashMap是工作中经常使用到的集合类,当然面试中也会经常被问到。下面我们就来看下面试中常见的HashMap问题吧。HashMap如何解决Hash碰撞的?HashMap底层是有数组+链表+红黑树(jdk1.8)的数据结构来实现的。当发生hash碰撞后,hashMap会把当前node(key-val)加到发生碰撞的hash位置的链表中。1.8后如果到达转化为红黑树的阀那么就会发生重新把链表转化为红黑树。如果添加的node对应hash位置发生碰撞的是TreeNode(红黑树节点),那么直接对添加到该红黑

2020-06-20 01:35:04 566

原创 JAVA后台对接苹果APNS(VOIP)实现推送

最近公司需要用苹果APNs实现类似微信视频接电话的效果,查看了苹果官网有VOIP这个东西,于是进行了研究开发。首先总结一下接入流程:在开发者中心申请对应的证书(推送证书,VOIP证书)IOS 注册推送到APNs(直接调用PushKit 的API即可),回掉中的DeviceToken发送到我们自己的服务端(服务端保存)服务器通发送HTTP推送消息请求到APNs服务器。(这一步就是服务器发送推送消息)IOS接受推送并处理。BiBi一句。研究任何一样东西首先查看官网资料,千万别怕英文,不知道的单词

2020-06-16 23:48:47 5150 7

原创 Oracle查询结果无法两层子查询的问题解决

oracle查询结果中嵌套两层子查询,报错无效标识符到了新的项目组需要接触oracle,但是以前用的大多数都是mysql,sqlserver。像oracle这种土豪配置还是第一次在项目中使用。废话不多说了,进入今天的主题。项目中有这样的需求,比如我查询A表中的一条记录,然后查询最近一次更新这条记录的人,更新的日志在另外一张表B。那么用Oracle怎么实现呢首先不能链表,如果链表a表的一天记录会出现多次,因为A->B是1:n的关系。用mysql的方式大概就是在结果中嵌套一层子查询select

2020-06-12 12:34:43 3215 1

原创 Windows环境中安装VirtualBox并安装CentOS虚拟机

VirtualBox安装CentOS7虚拟机下载安装VirtualBox下载CentOS7镜像文件做准备VirtualBox中新建虚拟机Xshell连接下载安装VirtualBox在VirtualBox官网(https://www.virtualbox.org)下载对应系统的VirtualBOX 。此处我是需要在Windows中安装虚拟机,那么下载windows版本的。点击Windows ...

2019-10-05 16:05:55 549

原创 CentOS7 安装Redis5.0.5

CentOS 安装Redis1.找到最新稳定版(当前5.0.5)2.配置默认启动(redis 默认不后台启动,需要配置)3.开机自启动1.找到最新稳定版(当前5.0.5)redis官网链接: https://redis.io进入Download可以界面可以看到有Unstable,Stable,Docker三个版本,由于本人是测试所以选择的是Stable稳定版。Redis版本遵循第二位偶数版...

2019-09-30 10:08:59 237

空空如也

空空如也

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

TA关注的人

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