- 博客(313)
- 资源 (27)
- 论坛 (1)
- 收藏
- 关注

原创 内存溢出+CPU占用过高:问题排查+解决方案+复盘(超详细分析教程)
前言最近刚上线了一款社交项目,运行十多天后(运营持续每天推量),发现问题:系统OOM(资源不能被释放)导致服务器频繁且长时间FGC导致服务器CPU持续飚高日志中内存溢出:java.lang.OutOfMemoryError: Java heap space程序十分卡顿,严重影响用户使用从以下方面,为大家分享此次问题解决流程问题出现现象临时解决方案复现问题定位问题发生原因优化代码优化后进行压测,上线复盘学完本博文,你的收获排查内存溢出的思路排查内存溢出过程中用到的命
2020-10-24 10:57:06
6211
31

原创 从零学ELK系列(一):为什么要跟我学从零学ELK系列
【前言】 网上写ELK日志收集系统,项目集成ELK,Docker,本地安装虚拟机这些孤立技术点文章汗牛充栋;但是很少有文章能即生动又能结合场景的从零一步一步搭建一套生产级日志收集系统并将生产项目集成日志收集系统的方案; 机缘巧合,本人负责研究公司ELK日志收集系统,并成功将其引入到公司生产级项目中;经过多个版本的迭代升级优化目前已处于稳定状态。【从零学EL...
2019-12-29 09:52:48
5119
12
原创 Centos7安装Docker(二进制)
前言最近在私有云部署一套自动化运维平台;其中k8s是重头戏,安装k8s之前需要先安装docker,之前博文中有讲如何通过yum方式安装docker《从零学ELK系列(三):Centos安装Docker(超详细图文教程)》,现在用二进制方式安装一次docker,在此记录docker架构图安装过程基本环境CentOS版本 7.9.2009Docker版本 18.06.3-ce安装docker官网包下载地址https://download.docker.com/linux
2020-12-31 22:24:43
241
2
原创 CentOS二进制安装Kubernetes
前言最近在私有云部署一套自动化运维平台;其中k8s是重头戏,这篇文章为大家分享一下二进制安装方式k8s架构图安装过程基本环境CentOS版本 7.9.2009Etcd 版本3.4.14Dockerk8s版本 1.17.16kube-apiserver服务安装下载并解压cd /softwget https://dl.k8s.io/v1.20.0/kubernetes-server-linux-amd64.tar.gztar -zxvf kubernete
2020-12-31 22:11:26
4720
10
原创 BIRD is not ready: BGP not established
前言最近在私有云部署一套环境;安装完k8s后遇到网络不通问题,通过查找记录问题解决方案;在此记录方便大家参考;问题及解决方案基本环境CentOS版本 7.9.2009k8s版本 1.17.16k8s安装方式 kuboard问题在虚拟主机ping不通pod的ip;pod之间也访问不到排查思路查看pod的运行情况(其中calico模块 Ready状态为0/1说明有问题)kubectl get pod -n kube-system -o wide查看cal
2020-12-31 21:53:13
2355
4
原创 CentOS安装Etcd
前言最近在私有云部署一套自动化运维平台;在安装k8s的时候需要用Etcd做为存储因此在CentOS安装Etcd在此记录安装过程,以后安装时做为参考安装过程基本环境CentOS版本 7.9.2009Etcd 版本3.4.14安装etcd下载并解压cd /softwget https://github.com/etcd-io/etcd/releases/download/v3.4.14/etcd-v3.4.14-linux-amd64.tar.gztar -zx
2020-12-31 21:37:02
115
原创 CentOS安装Nginx
前言最近在私有云部署一套环境;正好借此机会又将相关的基础组件进行了安装,再次记录一下;以后再次安装做为参考;Nginx在七层代理领域仍是霸主;自定义安装目录;方便以后运维管理安装过程基本环境CentOS版本 7.9.2009Nginx版本1.18.0JDK安装目录 /soft安装安装Nginx基础环境yum install gcc-c++yum install -y pcre pcre-develyum install -y zlib zlib-deve
2020-12-31 21:29:21
2413
7
原创 k8s常用命令
前言最近公司在运维方面引入k8s利器,搭建自动化发布平台:开发提交代码gitlab钩子触发打镜像私有镜像仓库(harbor)触发k8s部署;自己有幸能参加到这套自动化运维平台搭建过程中,其中自己针对k8s进行系统学习,在学习以及搭建排错的过程中经常用到一些常用命令,本篇博文针对常用命令进行记录;常用命令查看所有结点kubectl get nodes查看所有的命名空间kubectl get namespaces查看所有podskubectl get pods
2020-12-31 21:14:19
252
原创 CentOS安装JDK
前言最近在私有云部署一套环境;正好借此机会又将相关的基础组件进行了安装,再次记录一下;以后再次安装做为参考;JDK是安装很多基础组件需要一个基本环境;自定义安装目录;方便以后运维管理安装过程基本环境CentOS版本 7.9.2009JDK版本 1.8.0_271JDK安装目录 /soft卸载CentOS自带OpenJDK检查是否为OpenJDK命令(结果中有OpenJDK 字样说明为CentOS自带OpenJDK,需卸载)rpm -qa|grep java
2020-12-17 23:51:12
182
原创 WordPress网站访问慢解决方案(超详细图文教程)
前言之前自己搭建一个WordPress个人网站:https://zhanghan.xin;最近发现访问比较慢,于是乎进行了排查,下面是优化的方案。优化前:加载耗时:21秒+优化后:加载耗时:250毫秒优化后访问速度提升84倍+解决方案流程图流程图问题&解决方案&验证定位问题(加载一个CSS超时)解决步骤下载访问超时的CSS(Google浏览器中F12中可以找到加载CSS地址)并保存到本地(用可以连上google网络)https:/
2020-10-14 00:51:14
24207
17
原创 从零学ELK系列(十一):SpringBoot项目接入ELK超级版(超详细图文教程)
前言之前在《从零学ELK系列(十):SpringBoot项目接入ELK升级版(超详细图文教程)》中演示了SpringBoot项目接入ELK请求记录及优化,本次针对于未知异常通过拦截进行记录;优化前:系统发生异常没有记录异常信息优化后:记录本次请求的异常信息目录从零学ELK系列(一):为什么要跟我学从零学ELK系列从零学ELK系列(二):VMware安装Centos(超详细图文教程)从零学ELK系列(三):Centos安装Docker(超详细图文教程)从零学ELK系列(四):
2020-09-19 23:21:55
2470
7
原创 阿里云个人网站免费绑定SSL证书(超详细图文教程)
前言一年前搭建了个人网站,由于个人小程序绑定必须需要绑定HTTPS,于是乎绑定了SSL证书,最近阿里云一直在提醒SSL证书一年到期,提示续费;SSL证书续费几千,于是乎查找方案,阿里云提供个人免费SSL证书;一番操作后绑定成功;在此记录一下详细的步骤阿里云绑定SSL证书整体流程整体流程超详细图文步骤阿里云网页控制台操作阿里云控制台->进入SSL证书管理界面->选定域名 点击续费立即购买去支付支付前往证书控制台证书申请填
2020-09-09 18:34:55
914
原创 从零学ELK系列(十):SpringBoot项目接入ELK升级版(超详细图文教程)
从零学ELK系列(十):SpringBoot项目接入ELK升级版(超详细图文教程)前言之前在《从零学ELK系列(八):SpringBoot项目接入ELK(超详细图文教程)》中演示了SpringBoot项目接入ELK,后来项目中对这部分进行了优化,之前博文中也有读者问到,将优化整理成博文和大家共享;优化前:一次请求记录两条日志(request一条,response一条),通过UUID传连起来优化后:一次请求记录一条日志(request信息与response信息都在一起)目录从零
2020-09-08 09:50:13
2238
4
原创 SpringBoot实战(十八):签到奖励实现方案
前言最近在做社交业务,用户进入APP后有签到功能,签到成功后获取相应的奖励:项目状况:前期尝试业务阶段;特点:快速实现(不需要做太重,满足初期推广运营即可)快速投入市场去运营用户签到:用户在每次启动时查询签到记录(规则:连续7日签到从0开始,签到过程中有断签从0开始)如果今日未签到则提示用户可以进行签到用户签到获取相应的奖励提到签到,脑海中首先浮现特点:需要记录每位用户每天的签到情况查询时根据规则进行签到记录情况需求&流程设计&技术实现方案需求
2020-08-30 15:01:29
4745
1
原创 SpringBoot实战(十七):Redis Pipeline 轻松实现百倍性能提升(续)
Spring Boot实战:Redis批量操作轻松实现百倍性能提升前言最近在做业务的时候,需要批量操作Redis,虽然Redis的速度非常快,但是for循环操作Redis还是会有问题,在之前的基础上又对批量操作Redis进行了汇总;批量操作Redis:批量Set批量Get批量Set且设置过期时间批量Delete批量操作效果&技术实现方案之前本地测试操作100个Key值,批量操作是单个操作的快122倍(《SpringBoot实战(六):Redis Pipeline 轻松实
2020-08-30 14:20:09
2635
5
原创 Spring Boot实战分页查询附近的人: Redis+GeoHash+Lua
前言最近在做社交的业务,用户进入首页后需要查询附近的人;项目状况:前期尝试业务阶段;特点:快速实现(不需要做太重,满足初期推广运营即可)快速投入市场去运营收集用户的经纬度:用户在每次启动时将当前的地理位置(经度,维度)上报给后台提到附近的人,脑海中首先浮现特点:需要记录每位用户的经纬度查询当前用户附近的人,搜索在N公里内用户架构设计时序图技术实现方案SpringBootRedis(version>=3.2)Redis原生命令实现存入用
2020-08-09 18:34:58
1160
7
原创 Spring Boot实战解决高并发数据入库: Redis 缓存+MySQL 批量入库
前言最近在做阅读类的业务,需要记录用户的PV,UV;项目状况:前期尝试业务阶段;特点:快速实现(不需要做太重,满足初期推广运营即可)快速投入市场去运营收集用户的原始数据,三要素:谁在什么时间阅读哪篇文章提到PV,UV脑海中首先浮现特点:需要考虑性能(每个客户每打开一篇文章进行记录)允许数据有较小误差(少部分数据丢失)架构设计架构图:时序图记录基础数据MySQL表结构CREATE TABLE `zh_article_count` ( `id`
2020-08-08 14:14:39
3458
6
原创 根据某个特定字符删除一行
前言最近接了几个新项目的需求,为了快速开发,我们的策略是:基于原来的一套维定项目代码及数据库基础,去开发新的项目,一般步骤如下:在原来的代码git基础上拉出一个新的git项目地址修改代码的项目名称,代码目录结构将原来项目对应的生产库导出表结构形成脚本建立新项目的数据库将原来表结构脚本导入新项目的数据库为了降低风险,我们执行的脚本中不能包含DROP TABLE 语句(防止运维在线上执行时误操作在其他库上执行);如何根据某个特定字符删除一行前置说明MySQL客户端操作工具-Na
2020-07-12 23:58:51
779
2
原创 别让算法和数据结构拖你职业生涯的后腿
IT行业一直流传着一句名言,“程序设计=算法+数据结构”,这是瑞士计算机科学家Niklaus Wirth于1976年出版的一本书的书名,那么数据结构与算法在程序开发中的重要性也就不言而喻了。还记得刚上大学开始学习数据结构的时候,偶然听到一位编程大佬说数据结构其实是计算机专业基础课里最难的一门,我内心是不认可的,然而后来接触更深入时我才发现是我太年轻,并且也没有意识到它的重要性。 如果说你要修一座房子,那么数据结构就是你的地基,地基不稳,如何建造高楼大厦?数据结构的一般定义是...
2020-06-11 17:14:10
2386
1
原创 Git撤销之世上真有后悔药
前言大家在代码提交的时候有时会遇到过如下情况:错误将一些Demo代码误提交分支合并错误提交有冲突代码…这时需要有颗后悔药来拯救;世上真的有后悔药吗?下面我们一起来吃次后悔药撤销之来吃颗后悔药前置说明演示所用的Git服务端:码云目标:在reset分支上撤销之前N次提交撤销步骤把代码clone到本地仓库git clone https://g...
2020-03-03 16:30:17
8325
23
原创 从零学ELK系列(九):Nginx接入ELK(超详细图文教程)
【前言】 在前几篇博文中将ELK+Filebeat收集SpringBoot项目日志搭建完毕,本次我们将展示如何将Nginx接入我们搭建的日志系统,把步骤记录下来,一是方便自己以后安装,二是可以为大家做参考共享。【一句总结一张架构图】 一、一句话总结学完本篇博文,你将学到什么? Nginx接入ELK+Filebeat收集系统,K...
2020-01-06 15:37:59
2199
1
原创 SCPPO(十):网站发布中的问题锦集—手动发布网站
【前言】 现在做的项目是个维护性的项目,我们是第三期的末尾,最近正忙着验收。当然在验收前会有些功能需要修改,另外也会有新的需求需要实现;再加之最近有企业核对数据等等,所以网站的发布变成主要的工作之一。当然自己也有幸被组长多安排其中一个网站发布的职责(本项目中共有两个网站);所以有了今天的这次成长经历。 郑重声明:本人主要职责还是开发,只不过开发人员较少(加上组长共四...
2019-12-30 18:04:41
19737
19
原创 从零学ELK系列(二):VMware安装Centos(超详细图文教程)
【前言】 最近在研究ELK日志收集架构,想搭一套环境收集自己项目的日志;需要Linux环境支持,自己在阿里云的服务器由于部署了自己的自有博客系统(https://zhanghan.xin),资源不充足;没有环境创造环境也要研究;于是乎想到自己在五年前玩的在Windows中通过虚拟机运行Linux环境; 今天再次安装了环境把步骤记录下来,一是方便自己以后安装,二是可...
2019-12-29 09:55:34
1736
1
原创 从零学ELK系列(三):Centos安装Docker(超详细图文教程)
【前言】 为了更加真实的模拟生产部署环境,不仅需要Linux环境支持,而且ELK需要在不同的机器上部署;再重新装几台虚拟机?本地资源不支持,于是乎想到了Docker;今天在上次的Linux系统(《VMware安装Centos(超详细图文教程)》)中安装了Docker环境把步骤记录下来,一是方便自己以后安装,二是可以为大家做参考共享。【一句总结一张架构图】 一...
2019-12-29 09:55:07
1504
原创 从零学ELK系列(四):Docker安装Elasticsearch(超详细图文教程)
【前言】 为了更加真实的模拟生产部署环境,在上次的Docker环境中(《Centos安装Docker(超详细图文教程)》)中安装了Elasticsearch把步骤记录下来,一是方便自己以后安装,二是可以为大家做参考共享。【一句总结一张架构图】 一、一句话总结学完本篇博文,你将学到什么? Docker安装Elasticsearc...
2019-12-29 09:54:47
2108
2
原创 从零学ELK系列(五):Docker安装kibana(超详细图文教程)
【前言】 为了更加真实的模拟生产部署环境,在上次的Docker环境中(《Docker安装Elasticsearch(超详细图文教程)》)中安装了Elasticsearch,本次我们将安装Elasticsearch可视化组件---kibana把步骤记录下来,一是方便自己以后安装,二是可以为大家做参考共享。【一句总结一张架构图】 一、一句话总结学完本篇博文,你将...
2019-12-29 09:54:23
2478
3
原创 从零学ELK系列(六):Docker安装Logstash(超详细图文教程)
【前言】 为了更加真实的模拟生产部署环境,在上次的Docker环境中(《Docker安装kibana(超详细图文教程)》)中安装了kibana,本次我们将安装日志清洗组件---logstash把步骤记录下来,一是方便自己以后安装,二是可以为大家做参考共享。【一句总结一张架构图】 一、一句话总结学完本篇博文,你将学到什么? Do...
2019-12-29 09:53:57
4357
5
原创 从零学ELK系列(七):Centos安装Filebeat(超详细图文教程)
【前言】 为了更加真实的模拟生产部署环境,在上次的Docker环境中(《Docker安装Logstash(超详细图文教程)》)中安装了Logstash,本次我们将安装日志收集组件---Filebeat把步骤记录下来,一是方便自己以后安装,二是可以为大家做参考共享。【一句总结一张架构图】 一、一句话总结学完本篇博文,你将学到什么? ...
2019-12-29 09:53:28
2818
4
原创 从零学ELK系列(八):SpringBoot项目接入ELK(超详细图文教程)
【前言】 在前几篇博文中将ELK+Filebeat日志收集系统搭建完毕,本次我们将展示如何将SpringBoot接入我们搭建的日志系统,把步骤记录下来,一是方便自己以后安装,二是可以为大家做参考共享。【一句总结一张架构图】 一、一句话总结学完本篇博文,你将学到什么? SpringBoot项目接入ELK+Filebeat收集系统...
2019-12-28 18:42:30
3766
原创 Java线上排错---反编译文件
【前言】 有时候经常会遇到一些诡异的问题:明明在本地运行代码没有问题,服务器代码和本地一样,请求的参数和所连接的数据源都一样为啥服务器上不行那? 如果在测试环境我们可以进行远程调试(参考《idea远程调试》),但是线上应该如何排查? 博主遇到很多次这种情况,最后确定都是由于服务器上代码并没有更新导致的,没有更新原因有很多种比如:运维的部署脚...
2019-11-23 19:00:07
829
5
原创 Redis监控利器---Redis State
【前言】 在之前的博文《Redis百万级别数据迁移》中分享我们系统为降低服务器成本,从亚马逊云迁至阿里云的一次生产迁移过程中Redis部分迁移;去年迁移Redis时数据量500w+;最近在研究如何监控Redis的性能,Redis的Key命中率如何那?皇天不负有心人,找到一款Redis监控神器---Redis State;【Redis监控神神器】 一、本地运行...
2019-11-21 22:19:58
633
原创 SpringBoot实战(十六):集成Skywalking调用链监控系统
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 Skywalking做为生产级的调用链监控工具,不仅提供了丰富的监控系统,而且通过字节码拦截形式集成系统,对系统没有任何侵入性;最近研究一下调用链项目,在此与大家共享;【集成调用链】 一、Skywalking的github项目地址: ...
2019-10-24 10:40:44
13410
2
原创 SpringBoot实战(十五):Spring Boot Admin 集成告警模块
【前言】 Spring Boot Admin做为生产级的监控工具,必然自动化告警必不可少;Spring Boot Admin可以十分简单的集成告警组件;最近研究一下集成邮件告警到项目中,在此与大家共享;【集成告警模块】 一、集成告警模块(在此以邮件告警为...
2019-09-28 10:04:05
2968
原创 SpringBoot实战(十四):Spring Boot Admin 集成安全模块
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 Spring Boot Admin做为生产级的监控工具,必然不能随便让人去操作以免误操作导致线上问题,所以有必要集成Security组件;Spring Boot Admin可以十分简单的集成这安全组件;已集成项目中,在此与大家共享;【集成安全模块】 ...
2019-09-28 09:23:15
1143
原创 SpringBoot实战(十三):Spring Boot Admin 动态修改日志级别
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 之前关于线上输出日志一直有个困惑:如何可以动态调整的日志级别,来保证系统在正常运行时性能同时又能在出现问题时打印详细的信息来快速定位问题;最近研究一下Spring Boot Admin中动态日志级别调整,并集成项目中,在此与大家共享;【动态修改日志级别】 ...
2019-09-24 14:53:31
2780
3
原创 SpringBoot实战(十二):集成 Spring Boot Admin 监控
【前言】 程序开发完实现相应的功能只是一个部分,如何让系统在线上运行更好创造更高的价值是另外一个部分;监控是一个生产级项目避不可少重要组成部分;最近研究一下针对SpringBoot的监控项目---Spring Boot Admin,并集成项目中,在此与大家共享;【Sprin...
2019-09-24 13:29:56
2409
2
原创 logback 日志输出格式
【前言】 日志对一个系统的重要性不言而喻;日志通常是在排查问题时给人看,一个友好的输出样式让人看到后赏心悦目,排查效率通常也会随之提高;下面为大家共享一下通过设置logback日志输出格式,打印出令人欣喜的日志样式。【搞一下日志格式】 一、未指定日志格...
2019-09-24 11:17:20
2930
1
原创 Required request body is missing
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 最近对代码进行统一日志处理,通过拦截器,打印请求日志,方便排查问题,通过拦截器取参数后遇到一个问题:Required request body is missing;在进行了相关实验后最终解决此问题。【解决问题】 一、问题复现 ...
2019-08-07 16:07:29
5711
4
原创 BigDecimal 校验格式
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 最近收到一个需求,在管理后台对系统中的金额进行操作时,对操作的金额需要进行相关校验,如果不校验,在进行相关的计算时就可能会出问题。【BigDecimal 校验格式】 一、业务需求 前端接收到金额传给后端时需要对金...
2019-07-29 21:31:32
8445
2
原创 BigDecimal 转 String
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 最近遇到一个需求,是给用户发送带钱的短信,本来自己以为挺简单,很快可以搞定,不过在实现的时候遇到一些小问题,自己辗转查和实验最终解决该问题,在此记录一下。【BigDecimal如何转成String】 一、业务需求 ...
2019-07-28 23:55:05
8515
配色工具包---非常齐全的色彩
2020-03-31
mybatis逆向工程模板文件
2018-02-21
C#引入Redis时所需四个DLL
2016-08-14
当年的春天的留言板
发表于 2020-01-02 最后回复 2020-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝