自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

左撇子帕布

望终有一日扬名天下

  • 博客(81)
  • 资源 (5)
  • 收藏
  • 关注

原创 IDEA代码重构技巧--目录页

随着项目的演进,人员的更替,代码腐化会成为我们不得不面临的一个情况,这时候就需要重构代码,在以前重归代码就是不断的修改,替换,并将引用的地方也做相应的更改,费时费力且容易出错,但是现在IDEA工具给我们提供了自带的重构插件,以下是我总结的几种IDEA可以支持的重构场景。

2022-08-24 23:06:16 714 1

原创 JVM虚拟机学习目录页

使用Java已经多年,但是对JVM底层还是一直没有系统学习过,现在开始爬这座高山,以此博客记录。 学习源码:https://gitee.com/Coline/JVM JVM虚拟机学习(1)---Jvm内存区域:https://blog.csdn.net/u011294519/article/details/95937162 JVM虚拟机学习(2)---JVM对...

2019-07-15 00:18:50 255

原创 Java并发编程学习目录页

本人已有多年的java开发经验,但是至今仍对java并发编程相关一知半解,甚为羞愧,决定一边写博客一边学习,作为一个学习记录和分享。如有大神路过请多指教。代码:https://gitee.com/Coline/concurrent-programming博客目录:Java并发编程学习(1)---线程基础:https://blog.csdn.net/u011294519/arti...

2019-03-09 16:30:11 505

原创 IDEA代码重构技巧--拆分类

方法会腐化,同样,对象类也会腐化,不同人对业务理解的不同导致一个对象类可能被添加了很多不属于他的属性,这时就产生了代码的坏味道,此时我们需要将对象类拆分。

2022-08-23 23:56:40 1701

原创 IDEA代码重构技巧--抽取类和接口

重构和检视代码过程中,我们有时会碰到由于项目交接或者人员替换导致的代码腐化,比较常见的是类的职责不单一,此时比较好的重构技巧就是按照职责抽取函数或者类,进而还要分析一下是不是可以抽象一下,提取接口。

2022-08-21 23:40:16 4159

原创 IDEA代码重构技巧--迁移

在代码重构和检视过程中,比较常见的是一个类或者方法职责不单一,导致代码有坏味道,这种情况就需要基于函数抽取,迁移来做代码重构,而迁移意味着调用点也需要同步修改,仅靠手动拷贝工作量大且易出错,此时就可以借助IDEA的重构能力。

2022-08-20 18:42:07 6115

原创 IDEA代码重构技巧--抽取+内联

IDEA代码重构技巧--抽取+内联

2022-08-20 12:37:49 4995 1

原创 粗谈Linux DNS

粗谈Linux DNS

2022-05-08 17:07:10 673

原创 Linux dstat监控工具简讲

1. 小声哔哔 记得在19年的年末,我第一次接触sar命令时将其奉为经典,至今看来仍不为过,可见我之前的博客:运维入门必备Linux sar命令。说回今天我们的工具dstat,与sar命令很相像,都很全面且强大,但是dstat更类似于看板,可以作为一个全局的监控工具使用,也可以在单页面比较不同系统参数时使用,所以在日常运维过程中我更建议dstat和sar配合着使用。 网上针对dstat命令的全面解析有很多,我这里不做赘述,仅从运维经验精简一些我认为比较常用的命令,如果想看更全面的信息建议...

2022-02-01 21:07:38 1721

原创 Linux CPU上下文切换排查

1. 小声哔哔 服务器CPU使用率飙高的原因有很多,CPU的上下文切换就是其中一种,Linux上下文切换请参照博文Linux 上下文切换,但是没有实际的场景验证终究是有纸上谈兵之嫌,所以本博文我们使用sysbench工具来尝试模拟多线程切换以达成增加CPU上下文切换的效果。2. 正餐开始机器配置:2U2G 机器内核:CentOS 测试工具:sysbench(若机器无此命令可执行yum install sysbench -y安装) 检测工具:vmstat,pidstat(对此命令不熟悉..

2021-07-23 13:39:16 703 1

原创 Linux CPU上下文切换

1. 小声哔哔 接触运维时间久了以后,你会听到一个名词,CPU的上下文切换,有经验的运维同学会跟你说在运维多线程的服务时若发现CPU负载升高需要同时关注CPU的上下文切换频率是否过高。这时你的脑海中一定有一串问号,这啥玩意?多少算高?高了能咋地? 下面我们就简单了解下CPU的上下文切换到底是怎么回事。2. 正餐开始 现在的程序大多都是多线程服务,夸张一点的程序线程池数量可能就有几十上百,先不说这样是否合理,首先我们需要知道一台机器只有几核的CPU是如何做到似乎同时在执行很多...

2021-07-20 20:59:06 420

原创 Linux进程系统使用监控pidstat命令

1. 小声哔哔 在日常运维过程中,我们有时需要关注的是单个进程的系统指标,这时候top的确可以派上用场,但是top命令却又显得有些过于繁杂。之前讲过的sar命令可以关注整个系统的系统指标,那么有没有一个工具可以单独监控某个进程的系统指标呢,pidstat就可以承载这个工作。下面我们就学习下pidstat的使用方法。 在机器上执行pidstat --help查看pidstat的可用参数如下: 执行命令man pidstat可以查看命令的详细使用方法及输出结果的含义。...

2021-07-12 12:57:00 1410

原创 粗谈Linux中buffer和cache的使用场景

1. 小声哔哔 既然你已经看到这篇博文,说明你已经对buffer和cache已经产生了疑惑,为什么我的机器内存分配了一块内存给buffer/cache,这部分内存究竟是如何产生的,在内存紧张时我该怎么释放它。下面我基于自己的运维经验和倪朋飞老师的《Linux性能优化实战》探讨一下Buffer/Cache。2. 前菜小点 工欲善其事必先利其器,能够查看内存中buffer/cache使用量的工具有很多,比如free,vmstat,sar -r。此时需要你手中有一台虚拟机,尝试执行以上三个...

2021-07-03 18:09:10 497 1

原创 Linux安装Redis(PS:附脚本)

1. 前期准备安装包下载:下载链接脚本复制:修改脚本中参数后拷贝脚本,将下面的脚本内容复制,在虚拟机的任意路径下执行命令vim redis_manager.sh -> 按下键盘的Inster键 ->鼠标右键粘贴或使用键盘上的shift+Insert组合快捷键粘贴->按键盘ESC键->输入:wq! 因为部分依赖是通过yum安装的,所以确认机器上yum源配置正确,国内可以百度阿里云yum源配置 执行脚本安装redis: sh redis_manager.sh instal.

2020-12-30 23:44:37 324 1

原创 Linux基础--进程状态

1. 小声哔哔 做生产环境运维时我们经常会执行ps –aux命令来查看服务的状态,其中会有一列代表着服务进程状态,那么这个进程状态具体有什么含义呢,相信刚入坑的小伙伴一定很好奇,下面我将简单的介绍下各个进程状态的标识及需要注意的进程状态。2.正餐开始R状态Running或Runnable的缩写,表示进程在CPU的就绪队列中,正在运行或者正在等待运行。D状态Disk Sleep 的缩写,也就是不可中断状态睡眠(Uninterruptible Sleep),一般表示进程正在跟硬件交互..

2020-11-04 01:28:45 474

原创 运维入门之CPU平均负载及问题排查

1. 小声BIBI 曾几何时,年少无知的我将CPU使用率和负载混为一谈,简单的认为负载高了就是CPU使用率高,直到碰到了一次现网事故时发现CPU的load很高,但是CPU使用率却很低,苦于基础能力薄弱,只能求助大神才将事故解决,痛定思痛,下面就开始学习一些CPU性能相关的基础知识。本博文主要讲CPU的平均负载和简单的问题排查。2. 前期准备能联通互联网的Linux环境,我使用的是CentOS7 Stress性能压测工具,若机器上没有可以参照如下安装方式(注意机器有没有配置yum源)y..

2020-07-12 00:27:57 2935 1

原创 打开Docker的大门,CentOS7安装docker

1. 小声哔哔 已经做了一年的运维,现在的我开始对容器化产生了很多极大的兴趣,docker将是我要学习的第一个难关,望有所得。Docker有两个版本,一个是Docker CE,一个是DockerEE,Docker CE是社区版,可以免费试用,Docker EE是企业版,本博文仅做Docker Ce的安装讲解。因为本博文是docker的基础安装,有不足请路过的大神予以指正。2. 前期准备环境:CentOS7及以上版本(其他镜像我没有尝试过安装) 保证虚拟机能联通互联网3. 正餐开始安..

2020-07-07 00:16:05 179

原创 VMware CenterOS7安装

1. 小声BIBI 本博文仅展示CentOS7在VMware的安装,其他版本的安装可能会不一样,所以仅做参考。因为VMware的安装是非免费软件,若想使用破解版就麻烦大家自行百度,这里不做描述。2. 前期准备下载VMware Workstation Pro并安装 CentsOS镜像下载,到阿里云下载镜像,访问如下链接: https://mirrors.aliyun.com/centos/?spm=a2c6h.13651104.0.0.55af12b2diyTIg ...

2020-06-07 22:17:38 993 3

原创 perf性能分析带你具备高级运维的基础能力

小声BIBI事情的起因是在线上碰到了一次CPU使用率标高导致系统异常,当时使用sar -u命令查看发现system(内核态)数值飙高至40%左右,明显大于平时,此时就需使用perf命令进行性能分析,查找出是哪个服务或进程导致的内存飙高。本文不会介绍perf的实现原理等核心内容,仅做简单的命令介绍。前期准备一般我们的机器是没有安装perf的,执行命令:yum install perf -y安装perf,若出现下载较慢的情况,可以百度linux修改yum源为阿里云。正餐开始 perf top

2020-06-03 00:21:05 1409

原创 kafka问题排查:kafka生产超时

1. 小声BB 自己搭建kafka玩的时候发现kafka生产一直超时,下面列出排查步骤,希望有所帮助。2. 排查步骤检查网络:到机器上执行netstat -ant|grep 9092发现连接是正常的,本机telnet kafka_ip 9092也是通的,所以排除防火墙问题。检查kafka配置文件,路径:{kafka_path}/config/server.properti...

2020-03-27 16:45:24 4222

原创 探访ConcurrentHashMap在JDK1.7和1.8的区别

1. 小声哔哔 在并发场景下,HashMap存在并发安全的情况(并发扩容重新散列时因为链表是使用的头插法,会出现环形链表导致get时异常,CPU标高到100%),所以ConcurrentHashMap是并发编程中比较重要的一个工具,本博文将竭力介绍1.7和1.8版本中的ConcurrentHashMap,所以会比较长,建议收藏再看。2. JDK1.7版本实现 相较于Hash...

2020-03-19 23:33:47 513

原创 Java实现kafka消息发送(仅做入门)

1. 小声哔哔 kafka消息发送有三种方式,发送并忘记、同步发送和异步发送,下面直接使用代码演示,当然这里的实现代码仅做入门学习参考,真正的生产环境必然涉及多线程生产消息,配置统一规划等情况。2. 发送并忘记 首先写一个简单的消费者代码作为结果验证:package com.coline.middleware.kafka.consumer;import org.a...

2020-03-09 00:01:43 5775

原创 Kafka基础知识及常用命令

1. 基本信息 Linux安装kafka:链接 官方文档:链接2. 基本概念 简单描述:Broker:已发布的消息保存在一组服务器中,称之为Kafka集群。集群中的每一个服务器都是一个代理(Broker)。 消费者可以订阅一个或多个主题(topic),并从Broker拉数据,从而消费这些已发布的消息。 Topic:Kafka将消息分门别类,每一类的消息称之为...

2020-03-04 17:45:34 183

原创 @Value注解获取不到配置值

1. 写在前面 碰到过三种情况导致@Value获取不到配置值变量被关键字static修饰 类没有使用@Component及其衍生标签修饰 在Bean初始化时构造方法中引用被@Value修饰的变量 如果不是以上三种情况那么这篇博文就没法给你提供帮助了。 需要获取的配置如下kafka: bootstrap: servers: 192.168.2...

2020-03-02 00:48:57 47088 1

原创 Linux安装Kafka(PS:附脚本)

1. 前期准备安装包下载:下载链接脚本复制:修改脚本中参数后拷贝脚本,将下面的脚本内容复制,在虚拟机的任意路径下执行命令vim kafka_manager.sh -> 按下键盘的Inster键 ->鼠标右键粘贴或使用键盘上的shift+Insert组合快捷键粘贴->按键盘ESC键->输入:wq! 执行脚本安装kafka: sh kafka_manager.sh...

2020-02-28 00:12:30 319

原创 Linux安装Zookeeper(PS:附Shell脚本)

1. 准备阶段 安装包下载:下载链接 注意,zookeeper3.5版本以后需要下载带bin的安装包,不带bin的是源代码,部署完成后启动会报错:Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain脚本复制:修改脚本中参数后拷贝脚本,将下面的脚本内容复制,在...

2020-02-27 16:04:28 566 2

原创 Linux安装JDK(PS:附脚本)

1. 小声哔哔 只是想简单的安装JDK网上有很多,经过一段时间的运维经历后,我更看中大批量运维部署能力,所以决定写一个简单的脚本,可以+

2020-02-26 22:23:41 258

原创 面向面试学习,一起来玩策略模式

1. 小声哔哔 策略模式在23种设计模式中属于行为型模式,策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户,使用场景如下:如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。 一个系统需要动态地在几种算法中选择一种。 如果一个对象有很多的行为,如果不用恰当...

2020-02-08 22:01:11 172

原创 面向面试学习,一起来玩工厂设计模式

1. 小声哔哔 工厂设计模式算是经常在项目中使用的设计模式,属于创建型模式,可以理解为创建对象的设计模式。 应用场景:根据业务情况需创建不同类型的对象,且对象又存在相似的业务逻辑,此时需要将创建对象的责任交由工厂类,工厂类会基于输入创建对象。(该场景是根据自己的理解) 在查阅资料时看到有人讲工厂设计模式分为三类,简单工厂,工厂方法,抽象工厂,结合开发经验而言,简单工厂...

2020-02-02 23:19:19 241

原创 IDEA设置类快捷注释

1. IDEA配置Class文件默认注释 话不多说,先看效果,新建一个Test类后默认新增注释如下图: 1.1. 配置步骤File-->Settings-->Editor-->File and Code Templaes中的Class在图中位置新增如下配置即可:/** * @author: ${USER} * @ClassName: ...

2020-02-02 21:42:36 948

原创 面试算法-求数组最大子序列和

1. 题目有一个数组,如-2, 3, 6, 2, -4, 15, -8,查找其中最大子序列和。在本例中,最大值为3+6+2+-4+15=22,假设数组中必有正数.2.思路假设我们已知结果,和为最大的最大子序列为i到j之间可以将i-1做为分界点,即该点之前的子序列和为负数,因为若该子序列不为负数则可于后续序列相加,与假设相悖由思路1和2可进行操作:从数组由左至右相加,若为负数则可理解为...

2020-02-01 00:08:42 471

原创 面试算法-使用JAVA实现快速排序算法

1. 快排步骤首先设定一个基准值,通过该基准值将数组分成左右两部分。 将大于或等于基准值的数据集中到数组右边,小于基准值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于基准值,而右边部分中各元素都大于或等于基准值。 对左右两边的区域按照1和2做相同处理,最终达到排序效果,该过程使用递归实现2. 步骤演示原始数组array5 6 4 7 3 7...

2020-01-07 20:04:38 285

原创 运维入门必备Linux sar命令

1. 小声哔哔 执行sar --help查看sar命令的可用参数如下: 主要使用格式是:sar [ options ] [ <interval> [ <count> ] ] 执行命令man sar可以查看命令的详细使用方法及输出结果的含义 options是具体操作参数,interval是可选参数,代表统计间隔,count也是可选参数...

2019-12-06 00:04:15 1085

原创 运维基础命令linux find命令

目录1. 小声哔哔2. 超级常用命令2.1 -name2.2. -type 查找某一类型的文件2.3. -exec3. 常用的命令3.1. -mtime -n +n 按照文件的更改时间来查找文件3.2. -atime -n +n 按照文件的访问时间来查找文件3.3. -ctime -n +n 按照文件的状态改变时间来查找文件3.4. -maxdepth 查找...

2019-11-29 00:59:16 310

原创 Linux环境使用Shell脚本安装Mysql5.7

1. 前言 之前写过使用shell脚本安装Mysql5.6版本,闲暇之余研究了下mysql5.7与5.6安装的区别,写下Mysql5.7的shell运维脚本,供大家参考。(Linux环境使用Shell脚本安装Mysql5.6:https://blog.csdn.net/u011294519/article/details/89004581)2.Mysql5.6与5.7的安装区...

2019-11-19 00:28:39 2800 20

原创 一起来玩Mysql--用户权限管理

1. 小声哔哔 Mysql及navicat的安装不是我想细讲的,linux上mysql的安装我已写有博客及脚本,大家可以参考。2. Mysql权限 为防止删库跑路,我们需要对mysql的用户权限进行限制,而mysql的用户权限是由user表,db表,tables_priv表,columns_priv表进行控制。 User表:存放用户账户信息以及全局级别(所有数据库...

2019-11-14 00:33:20 155

原创 windows使用dos进入mysql

首先打开dos界面,cd到mysql安装路径的bin目录下,如下图所示: 然后执行命令:mysql -u [username] -p后按下回车键,输入密码即可进入mysql 若出现提示权限不足的情况可以尝试“以管理员方式运行”C:\Windows\System32路径下的cmd.exe文件进行操作:...

2019-11-13 00:27:11 312

原创 利用mysql临时变量排序

有时我们需要做类似于销量排序的问题,销量相同的时候要有并列名次,类似于如下数据,我们要对num从大到小排名。 Id num 1 1000 2 1000 3 500 4 4000 ...

2019-10-28 16:50:49 586

原创 JVM虚拟机学习(5)---JDK常用工具(二)

目录页:https://mp.csdn.net/postedit/959371561. 常用的命令行工具 1.1.jinfo jinfo常用于查看或设置JVM参数,执行jinfo -help查看命令格式。参数:pid:进程号 executable core 产生core dump文件 [server-id@]remote server IP or hostna...

2019-10-21 00:33:29 180

原创 JVM虚拟机学习(4)---JDK常用工具(一)

目录页:https://mp.csdn.net/postedit/959371561.jps 1.1. jps -l 输出应用程序主类完整package名称或jar完整名称. 1.2. jps -v 列出jvm参数,2. jstat 使用jstat -help查看参数格式如下:-t:可以在打印的列加上Timestamp列,用于...

2019-10-19 22:51:03 183

kafka生产及消费示例代码,下到就是赚到

kafka参考代码,一看就会,一看就懂,下到就是赚到,里面包含kafka生产及消费的实现代码,用于学习使用

2020-03-05

jvm内存分析工具mat

mat用于分析JVM的内存dump信息,是在JVM内存异常时进行内存分析的好工具

2019-09-20

cat监控服务最新war包,版本3.0.0

cat监控服务最新war包,版本3.0.0,用于cat监控部署,部署方式参照:https://github.com/dianping/cat/wiki/readme_server

2019-03-28

SpringMVC整合Activiti Modeler必备activiti-5.22

SpringMVC整合Activiti Modeler必备,请参照:https://blog.csdn.net/u011294519/article/details/81152571食用,要是没有积分可以到我的百度云盘下载:https://pan.baidu.com/s/1XVTammPbIrbzU1MK7TBFOA

2018-08-18

dubbo-admin源码

这里是dubbo-admin源码,可以直接从github上下载,但是担心有的小伙伴访问github有问题,所以上传这个文件分享给大家,本来不想收取积分,但是万恶的CSDN最少也要有1积分收取,好尴尬,大家也可以到我的百度云盘下载:https://pan.baidu.com/s/15k6nEtUNRm8893O__iL-og

2018-08-18

空空如也

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

TA关注的人

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