自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(253)
  • 资源 (31)
  • 收藏
  • 关注

原创 Java常见线上故障排查方案

文章目录一、前言二、Java常见线上问题总结三、如何定位问题3.1、业务日志分析排查3.2、APM分析排查3.3、物理环境排查3.3.1 CPU分析3.3.2 内存分析3.3.3 磁盘分析3.3.4 网络分析3.4、应用服务排查3.4.1 CPU分析3.4.2 内存分析3.5、云厂商或运营商问题排查四、常用Linux分析命令4.1 CPU4.2 内存4.3 磁盘4.4 网络五、Arthas诊断命令5.1 下载安装5.2 启动Arthas5.3 开始诊断5.4 查看dashboard5.5 arthas常见命

2021-02-02 22:36:52 362

原创 记一次线上JVM优化

夜黑风高的周末夜晚,正躲在书房追剧刘老根4,突然手机开始震个不停,心想难道是我的比特币要炸了吗?慌忙拿起手机的那一刻突然想起来我好像买不起比特币(心凉半截),原来是在公司群里被人艾特了,原来是S部门的某个Java服务出现了性能问题,找我这个Z部门的人帮忙看一下,描述是这样的:白天的时候jvm涨的快,gc的几秒就完成了到了晚上低峰期,jvm会涨的非常慢,但是一旦满了,就需要一两分钟时间进行gc,所以每隔一大段时间,会卡住一两分钟一次GC需要一两分钟的时间,最快的时候也需要几秒钟,心里一紧,这是个大活

2021-05-09 21:47:08 344 1

原创 Redis Cluster在Master节点fail后未自动切换主备

检查一下redis.conf中的requirepass和masterauth是否已配置从节点的masterauth与主节点的requirepass一致

2021-02-18 23:02:53 1523 1

原创 MySQL修改启动端口无效

今天遇到一个特别沙雕的问题:在安装MySQL的时候,指定了my.cnf文件,但是文件中指定的端口一直不生效,每次启动都是用的3306。对my.cnf内容进行了检查核对,发现配置文件并无问题,也就是在配置文件内容没有任何错误的情况下,配置并未生效,这就相当的奇怪了,排查了好久,最终在官网,找到了响应的解决方案,不过在讲解决方案之前,我们来说一下mysql配置文件的使用规则。my.cnf加载顺序我们查看MySQL在启动的过程中,如果未指定--defaults-file,那么会加载哪里的my.cnf呢?我们查

2021-02-06 20:06:05 3640

原创 使用HAProxy搭建MySQL集群

引言我们知道搭建MySQL集群有MHA、MGR、MMM,以及MySQL官方提供的MySQL-Cluster方式,以下主要以MGR方式为主做介绍,稍后再介绍这几种集群方式的差异。我们先简单的介绍一下MGR架构,MGR的全称是MySQL Group Replication,是官方在5.7.17版本推出的基于paxos协议的集群方案。有人说MGR是基于状态机的集群设计,每一个节点都可以看做是一个状态机,任何一个节点出现服务器信息我准备了四台机器,一台haproxy节点,三台MySQL节点,这三个M.

2021-02-02 22:15:11 1459

原创 MyBatis自定义TypeHandler解决字段映射问题

小林子:串哥串一串:干哈啊,又来小林子:如果MySQL一张表中一个字段存储的数据格式是"1,2,3,4,5",也就是逗号分隔的,我如何能让别的使用者在无感知的情况下,只用List<Integer>来传输和接收?持久层用的MyBatis。你滴明白我的意思吗?串一串:不明白小林子:…串一串:你知道MyBatis中有一个类叫BaseTypeHandler吗?这个类可以满足你的需求。小林子:具体要怎么做?我有点懵,没接触过这个类,它是干嘛的?串一串:我们来看个例子创建一张表待用:c.

2021-01-19 01:18:27 1557

原创 idea打包Java工程为jar

目前创建Java工程大多是使用Maven或者Gradle了,但是在某种情况下,还是需要单独创建一个Java工程来做些事情,正巧最近机缘巧合需要搞这么个事情,因为idea将Java工程打成jar包还是有点麻烦的,所以就此记录一下我的使用方法,废话了半天,往下看吧。创建一个Java工程很简单,一直下一步就可以了加入依赖jar包新创建好的工程只有一个src目录,只能使用响应的jdk包中的类,我们创建一个名叫lib的Directory,然后把需要的jar包全部都copy到到该目录下,然后选中所有的

2021-01-17 00:04:51 223

原创 MySQL全量备份和增量备份

MySQL目前是市面上比较流程的关系型数据库,很多人使用MySQL里的数据真的安全吗?如果发生以下问题的话:MySQL数据目录所在磁盘损坏MySQL服务器发生故障人为操作失误导致删除了一些数据黑客入侵导致数据被攻陷等问题这个时候如果没有备份数据库中的数据,造成的影响将是非常严重的,但是我们备份数据不能每天手动的去全量导出,如果放假忘记了或者啥啥啥的,咋整?所以还是要让备份交给服务器去做调度。这里推荐的备份工具是innobackupex,首先要安装它,步骤如下(centos):官网:http

2021-01-14 10:30:52 313

原创 Maven配置之dependencyManagement

今天小林子突然发来一条消息:小林子:这个关键字是干嘛用的,为什么我的子模块导入不了依赖的jar?是子模块需要配置什么吗?串一串:这是gradle吧,dependencyManagement的作用是什么你知道么?小林子:…串一串:看来你是不知道哈,在单模块中,我们使用dependencies就可以实现对依赖的引入和管理,并且模块中使用的依赖版本会和我们手动引入的依赖版本一致,版本冲突的可能性较低(但有冲突的可能),这种是我们常用的管理依赖的办法。小林子:懂了串一串:懂个屁了懂了,这只是说了单模

2021-01-13 23:18:13 875

原创 搭建NFS

在所有的节点执行语句yum -y install nfs-utils rpcbind在服务端执行以下语句cat <<EOF >> /etx/exports/data 10.160.22.0/24(rw,all_squash,anonuid=0,anongid=0)EOF# 使配置生效exportfs -rvservice rpcbind startservice nfs startservice rpcbind statusservice nfs statu.

2020-12-17 13:42:55 78

原创 解决Centos使用ssh连接自动断开

在使用Centos7的时候,经常在一段时间没有操作之后就自动断掉了,然后重新连接之后就可能失去了当前操作场景,那么如何才能保证我们即使长时间不操作也会一直保持连接状态,往下看。第一种方法也是网上到处都能搜索到的,修改/etc/ssh/sshd_config文件使用命令打开/etc/ssh/sshd_config文件:vim /etc/ssh/sshd_config,修改两个参数ClientAliveInterval和ClientAliveCountMax,这两个参数控制了客户端的存活检测间隔和失败检

2020-12-15 10:03:35 5570 1

原创 Linux服务器之间免密登录

Linux服务器之间在某些情况下可能需要互相之间免密登录,这就用到了ssh进行登录,主要步骤如下:生成ssh key# 生成ssh keyssh-keygen -t rsa如果生成失败,那么就安装一下ssh的生成命令yum install -y openssh-server openssh-clients创建~/.ssh/authorized_keys文件touch ~/.ssh/authorized_keys复制服务器的公钥~/.ssh/id_rsa.pub放到~/

2020-12-14 00:30:54 175

原创 Nacos如何是怎么实现将多个配置项注入到同一个工程中的

在使用Nacos的时候,有没有想过如何将多个配置同时注入到一个工程中?比如下面的一个场景:多个项目工程的数据库配置一致,但是又有不同的私有化配置,根据抽象原则,我们是否可以将重复的配置信息单独放到一个共享的配置文件里,然后再给一些项目配置一个独享的配置文件呢?在使用本地配置的时候,可以给工程指定多个yaml或者xml等文件,然后加载器会根据路径将全部文件依次加载到项目运行环境中,那么使用Nacos怎么办呢?在Nacos中,提供了nacos.config.dataId配置参数,他可以接收一个配置文件名称

2020-12-03 00:02:56 1924

原创 SpringBoot Admin安全配置

之前我们讲过如何使用SpringBoot Admin监控微服务,但是这种情况下,所有的服务都会暴露给外部,一旦SBD地址泄露,那我们的服务将毫无安全可言,所以我们需要给SBD配置安全策略。Web应用的身份认证和授权方式有多种方法,Spring Boot Admin不提供默认方法。默认情况下,spring-boot-admin-server-ui提供登录页面和注销按钮,我们使用Spring Security实现安全认证。引入Spring Security依赖<dependency>

2020-11-24 13:36:48 1815 3

原创 Elasticsearch health check failed

今天在使用Elasticsearch的时候,突然报了一个错误信息s.b.a.e.ElasticsearchRestHealthIndicator : Elasticsearch health check failed Caused by: java.net.ConnectException: Connection refused这个信息在之前都没有跳出来过,刚修改了yml配置文件之后启动就报错了,难道是配置问题?看一下当前的配置文件es模块spring: data: elasti

2020-07-14 10:32:19 6625

原创 Centos升级Python2到Python3

Centos默认安装了Python2,但是现在Python的版本在不断的升级,很多项目的开发环境都是基于Python3的了,所以在服务器上部署Python项目之前,我们需要先将服务器上的Python升级到3.x。网上有很多升级办法,比如下载源码,自己make,比如使用yum,现在就说一下最简单的方式:yum安装使用yum安装yum install python3然后会出现一大堆的安装过程日志,等待即可。安装完成之后通过命令python3 -V查看安装的版本。设置软连接进入到/usr/

2020-07-09 23:14:57 160

原创 SpringBoot使用Elasticsearch却扫描不到Repository

在使用spring-data进行ES操作的时候,报找不到Repository错误Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2020-07-06 18:34:07.085 ERROR 2364 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :

2020-07-09 23:14:21 3185

原创 Maven项目报错must be “pom“ but is “jar“

今天在创建新项目时,由于手误,出现了一个bug:must be “pom” but is “jar”,信息图如下:整个项目结构为:也就是code-ac的pom.xml的packaging应该是pom,但是在xml中未明确指定packaging,所以默认使用的是jar,因此出现了上面的bug。解决办法:在code-ac的pom.xml文件中指定packaging为pom即可。如果修改之后仍然继续报错,那么就把磁盘上的本地maven库中项目响应的包删除掉,也就是把缓存删除掉,即可。拓展:Q:

2020-07-03 00:02:46 6859

原创 讲讲Redis持久化

简介Redis作为目前最常用的K-V缓存数据库,因其具有访问速度快而备受欢迎,而其极快的访问速度是基于数据都在内存中来达到的。但是我们并不能保证服务永远是100%可用的,能保证99.999%可用就已经很了不得了,如果数据仅仅存储于内存中,那么意外的宕机就会导致数据丢失,那么对一些数据敏感的业务势必会造成不可泯灭的影响。所以Redis提供了数据持久化功能,目的就是将内存中的数据保存到磁盘上,同时也要最大可能的不影响读写操作的性能。Redis提供了RDB(redis Database)和AOF(Append

2020-06-30 09:00:49 240

原创 SpringBoot官方配置文档(英文版)

BANNERbanner.charset=UTF-8 # Banner file encoding.banner.location=classpath:banner.txt # Banner file location.banner.image.location=classpath:banner.gif # Banner image file locatio...

2020-06-09 00:55:00 1212

原创 ThreadLocal是怎么实现线程隔离的

ThreadLocal大家应该都不陌生,见过最多的使用场景应该是和SimpleDateFormat一起使用吧,因为这个SDF非线程安全的,所以需要使用ThreadLocal将它在线程之间隔离开,避免造成脏数据的????。那么ThreadLocal是怎么保证线程安全,又是如何操作的呢?案例123456789101112131415...

2020-06-09 00:55:00 1259

原创 Nacos编译报错Use STAR or POSIX Extensions to Overcome This Limit

Nacas安装可以通过下载源码进行编译和下载发行包两种方式来启动Nacos 源码1234567git clone https://github.com/alibaba/nacos.gitcd nacos/mvn -Prelease-nacos clean install -U ls -al distribution/target/...

2020-06-09 00:55:00 1149

原创 Kafka在数据传递上的场景分析

场景前段时间遇到一个场景,有一个用户社区模块,用户可以在社区的帖子专区发布帖子,或评论帖子,帖子和评论信息需要依据产生时间依次发送给第三方,消息内容为帖子和帖子评论,接收方必须先接收帖子再接收帖子评论,且需要按照发生时间顺序依次接收。第三接收方随时可能新增或减少,新增的接收方需要获取加入时间前30天之内的历史数据。 消息中间件选择这是一个纯粹的消息传递功能,...

2020-06-09 00:55:00 157

原创 反序列化报错:Cannot Deserialize From Object Value (No Delegate- or Property-Based Creator)

反序列化报错:cannot deserialize from Object value (no delegate- or property-based Creator)这个原因最根本的是没有找到无参构造方法,解决办法是给类加一个无参构造方法 ...

2020-06-09 00:55:00 8057

原创 工程师和程序员的区别

开一个杂谈的类目,探讨平时工作中遇到的趣事,可能偶尔也会转载一些其他地方看到的有意思的行业趣事,纯属一乐。 开端今天下班后,公司里一个工作多年的小朋友找我闲聊,然后聊着聊着不知为啥聊到了行业上:12345678小朋友:串串,你为什么不愿意带团队?串 串:不感兴趣!小朋友:你打算敲代码到35岁吗????串 串:40小朋友:就算技术...

2020-06-09 00:55:00 5903

原创 头条、美团、滴滴、京东等大厂面试题

头条聊项目,画项目架构图,画一个用户从发起请求到接收到响应,中间经过哪些服务,每个服务做什么事情的流程图。讲项目中的难点、挑战,你是如何解决的?Redis 中有几种类型 & 各自底层怎么实现的 & 项目中哪个地方用了什么类型,怎么使用的?Redis如何实现分布式锁,zk如何实现分布式锁,两者的区别。如果service还没执行...

2020-06-09 00:55:00 1045

原创 Redis基本命令使用::string篇

Redis有6大基本类型,分别是字符串(String)、列表(List)、集合(set)、哈希结构(hash)、有序集合(zset)和基数(HyperLogLog)redis在线体验地址:http://try.redis.io/ 字符串(String)介绍:字符串是Redis中最基本的数据类型,数据以二进制的形式存储于内存中,所以Redis的字符串可...

2020-06-09 00:55:00 212

原创 推荐十款IDEA撸码神器插件

前言IDEA作为一款常用的代码编辑工具,以功能强大和人性化等特点备受推崇,并且在使用过程中,我们还可以借助一些强大的插件来帮助我们简化编码工作。下面介绍几款我常用的功能性插件,每一个功能都相当不错,大家可以选择性使用。 插件Alibaba Java Coding Guidelines及时检测代码中的坏味道,在扫描代码之后,将不符合阿里规约的代码显示出来...

2020-06-09 00:55:00 1130

原创 运行Jar包时指定启动端口

java -jar xxx.jar --server.port=9090–server.port一定要在最后

2020-06-09 00:55:00 8060

原创 使用LockSupport实现线程交替打印1-100

简介LockSupport是JDK底层的基于sun.misc.Unsafe来实现的类,用来创建锁和其他同步工具类的基本线程阻塞原语,在AQS中,就是通过调用LockSupport.park()和LockSupport.unpark()来实现线程的阻塞和唤醒的,不清楚的可以先了解一下AQS基本概况。每一个使用LockSupport的线程都会与一个许可关联,如果许可...

2020-06-09 00:55:00 1212 1

原创 Redis和MySQL分布式双写一致性

前言一个MySQL服务和一个Redis服务,用户的数据存储持久化在MySQL中,缓存在Redis中,有请求的时候从Redis中获取缓存的用户数据,有修改则同时修改MySQL和Redis中的数据。现在问题是:不论是先保存到MySQL还是Redis,都面临着此成功彼失败的情况,那么如何保证MySQL与Redis中的数据一致? 数据一致性数据一致性主要出现在使用不...

2020-06-09 00:55:00 851

原创 使用Docker构建自己的JDK容器

★为了在Dockerfile中使用FROM自己的jdk,在此构建一个独立专属的1、下载需要构建的jdk压缩包,使用压缩包即可,此处使用了jdk_8u191< 下载 >,根据自己需要,别乱下2、因为jdk属于是系统环境配置,所以此处需要借助系统镜像去构建,此处借助centos:7来构建,查找可用的centos镜像:2.1、docker search ...

2020-06-09 00:55:00 1949

原创 MySQL联合索引底层数据结构

前言了解MySQL索引结构的基本都知道索引BTree类型是用B+树的数据结构,单列索引的结构我们很容易理解,二级索引的每个叶子节点只存储主键关键字外的一个数据,查询起来也很容易在非叶子节点进行大小值判断,最终找到叶子节点对于多列组合索引,存储结构也是B+树,那么非叶子节点和叶子节点都存储的是什么内容? 二级组合索引对于组合索引,需要遵循断桥原则(最左匹配...

2020-06-09 00:55:00 5045

原创 Git修改已提交用户信息

修改Git用户名和邮箱修改某一项目配置终端进入到项目所在目录下,执行以下命令123git config user.name "cc"git config user.email "[email protected]"修改全局配置打开终端,执行以下命令123git config --global user.name ...

2020-06-09 00:55:00 533

原创 Redis的穿透、击穿和雪崩

前言不论是我们在使用Redis还是准备面试,都逃不掉一块我们必须要考虑到的内容,也是使用Redis不精细的话必定会遇到的问题,就是缓存穿透、击穿和雪崩,这三个问题严重情况下,会使服务无法继续正常使用。从名字上来看,好像雪崩最严重,眼前突然浮现出电影《攀登者》里面的画面=。= 缓存穿透缓存穿透是指访问一个DB和Redis中必定不存在的key,如果不对这类请求进...

2020-06-09 00:55:00 282

原创 忘记MySQL的root用户密码怎么办

在工作中,如果我们忘记了数据库的密码,那么我们该怎么办?其实方法很多,下面我们主要说一下如何修改宿主机上的MySQL以及Docker容器中的MySQL。 1. Docker容器中的MySQL启动MySQL的容器通过docker命令进入到容器中docker exec -it container_id /bin/bash找到docker.cnf配置文...

2020-06-09 00:55:00 286

原创 软件开发中的幂等是什么

工作中经常会遇到一个事务型接口或者一个事务型方法被调用方重复调用,实际上每次调用的数据都是相同的,有可能是因为网络延迟,客户端点击了多次,也可能是调用方故意而为之,不论是哪种情况,我们都不能让这种重复的操作对我们自己的系统造成不必要的影响。因此,我们需要对于接口和方法做幂等校验。其实幂等过滤一直都贯穿IT行业,只不过现在随着互联网行业的发展,行业内的造词能力和词语引...

2020-06-09 00:55:00 1817

原创 TCP三次握手和四次挥手

简介传输控制协议(Transmission Control Protocol,简称TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,应用层向TCP层发送用于网间传输的用8位字节表示的数据流,TCP将数据流做分隔处理后透传给IP层,然后由IP层将数据传输给目标端TCP层。TCP为保证不发生丢包,会对所有的包进行编号,接收端依据编号按序接收,全部数据包...

2020-06-09 00:55:00 96

原创 简单的看一下服务治理是什么

引文开始看文章之前不妨先思考几个问题:服务治理是什么,什么样子的服务需要治理,为什么需要治理服务,应该怎样治理服务,治理服务的哪些方面,不治理的话服务会怎样?这些问题基本就是服务治理的关键思想了,搞懂这些问题,就相当于是掌握了服务治理的基本概念。 服务演变过程我们在解决上述问题之前,先来看一下服务架构的发展过程。 单体服务对于单体服务来说,应用结构一般比...

2020-06-09 00:55:00 677

原创 MySQL回表、索引覆盖、索引下推

准备创建一张表,并创建一个自增主键索引和一个组合索引12345678910CREATE TABLE index_opt_test ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(11) DEFAULT NULL, title varchar(11) DEFAULT NULL,...

2020-06-09 00:55:00 2532

lombok的eclipse安装包

eclipse安装lombok支持的jar包,一键安装,简单轻松可用

2019-03-20

springboot整合mybatis多数据源

springboot整合mybatis多数据源,

2018-06-22

获取RSA公钥+私钥

获取RSA公钥+私钥

2017-04-07

Flash_cs3下载

Flash_cs3下载,下载之后解压即可进行安装

2015-01-23

windows64位的memcached下载

windows64位的memcached下载,已经验证过了,着实可用

2015-01-19

服务器版FTP

经典服务器版FTP管理软件,小小个头有大用处

2014-07-23

WEB页面颜色选择插件

WEB页面颜色选择插件,非常好用,所以极力推荐,用过的都说好

2014-03-18

带有多种样式的JSP分页标签

带有多种样式的JSP分页标签,内附多种样式,方便使用,只需一句标签即可实现多样式分页

2013-12-11

Android网络通信之文件断点下载事例代码

Android网络通信之文件断点下载事例代码,修改string.xml中net_path属性的值来指定网络资源文件地址

2013-10-24

Windows录像专家

Windows桌面录像专家,免费使用,桌面录像的最佳选择

2013-10-23

Android网络通信之网络图片上传事例代码

Android网络通信之网络图片上传事例代码,下载导入之后

2013-10-19

Android网络通信之网络图片查看器事例代码

Android网络通信之网络图片查看器事例代码,解决出现异常:android.os.NetworkOnMainThreadException方案

2013-10-09

Windows-Git工具

使用基于Windows的Git,这里提供了msysGit的安装下载。

2013-09-26

ZendStudio9.0.4破解

ZendStudio9.0.4快速破解方案,百试不爽

2013-09-12

SQLyog Enterprise免费版

SQLyog Enterprise免费版MySQL操作工具,简单好使

2013-09-10

整合Apache和Tomcat的mod_jk

整合Apache和Tomcat的mod_jk基本说明文件

2013-09-02

JSP验证码标签

自己开发的JSP界面验证码标签,只需要导入此jar包即可使用,具体使用方法参照demo项目

2013-06-13

深入java虚拟机

深入java虚拟机全文,已经绝版的书,对Javaer很有帮助

2013-04-10

日志log4j.jar包

com.springsource.org.apache.log4j-1.2.15.jar

2013-01-29

Eclipse快速打开文件

Eclipse快速定位文件jar包,将此jar放入Eclipse安装目录下的plugins目录下,重启Eclipse即可

2012-12-20

excel经典教程

excel教程,flash版,打开即看,适用于各种视频播放器

2012-11-28

XML格式化工具

XML格式化工具,免安装,解压即用,轻松又方便

2012-11-28

Jcrop头像截取

类似人人网的头像截取demo,使用Jcrop进行开发

2012-11-25

JSP分页标签(最新)

自己开发的JSP界面分页标签,解决了当前分页代码的繁琐性,只需要导入此jar包即可使用,具体使用方法参照readme.txt文件内容

2012-11-24

JSP分页标签

自己开发的JSP界面分页标签,解决了当前分页代码的繁琐性,只需要导入此jar包即可使用,具体使用方法参照readme.txt文件内容

2012-11-23

图片旋转、翻转处理

js做的图片旋转、翻转处理,有需要的下载啊

2012-11-05

SSH+xfire所需jar包

其中具备Struts spring Hibernate jar xfire所需jar包

2012-08-06

Linux下的C语言编程

Linux操作系统下C语言编程大全Linux操作系统下C语言编程大全

2012-05-04

mysql-connector-java-5.0.5-bin.jar

JAVA中的MySQL数据库连接jar,此版本为mysql-connector-java-5.0.5-bin.jar

2011-10-03

空空如也

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

TA关注的人

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