项目运维
文章平均质量分 73
项目运维
潇潇雨歇_
www
展开
-
记一次线上故障--HashMap在多线程条件下运行造成CPU 100%
问题就出现在了while (e != null),从上面的代码看来,每一个线程进来都先执行dataMap = new HashMap();这个时候dataMap是空的,所以在执行下面的操作的时候进入了某一个不可以随意更改状态的代码中,再加上高并发,一直被new HashMap(),while一直被执行,变成了死循环。cpu就瞬间飙升到100%,一直持续到请求数降低的时候。重构问题代码,多线程并发扩容时就会出现环形引用的问题,从.........原创 2022-06-23 15:40:59 · 844 阅读 · 0 评论 -
线上 java.lang.OutOfMemoryError: unable to create new native thread问题解决思路
问题来源:kafka多个topic的消费数据使用到了线程池的监听消费,以异步处理,提高效率。但是生产上代码运行一段时间后会报java.lang.OutOfMemoryError: unable to create new native thread 程序宕掉,是一个生产致命错误。线程池配置如下: private static ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat("thread-pool.原创 2022-03-21 16:31:00 · 7023 阅读 · 0 评论 -
搭建Prometheus+Grafana统一监控平台
在分布式项目的运维当中,经常会遇到服务器负载过高的问题,由于没有监控,一直没发现,直到业务方反馈系统操作速度慢,才发现问题,这样显得十分被动,于是打算搭建一套用于监控系统服务器的统一监控平台。一.实现的监控目标二.搭建所需的安装包及配置文件三.Prometheus服务端安装以下操作皆在监控主机(172.10.0.1)上执行3.1关闭防火墙# systemctl stop firewalld# systemctl disable firewalld3.2安装 ...原创 2021-11-19 14:26:28 · 1328 阅读 · 0 评论 -
玩转docker+nginx : 局域网制作宝塔面板docker镜像,并导出使用
一.宝塔面板镜像的制作(本地VM虚拟机操作)1.重启docker服务systemctl daemon-reload;systemctl restart docker;2.拉取一个centos镜像作为基础镜像docker pull centos3.创建docker容器docker images;docker run -dit -it -p 8888:8888 --name=baota-centos 5d0da3dc9764(docker images命令查出的cento原创 2021-11-05 11:40:56 · 4207 阅读 · 0 评论 -
GitLab + Jenkins实现一键分布式项目自动化部署
、、分布式项目的打包部署增加了运维人员的工作量,而且工作是机械重复,极无技术含量的,说白就是打更。我们要把复杂的事情简单化,简单的事情标准化,标准的事情流程化,所以打包部署成了我们流程化里头的流水线。该项目是一个有5台+以上的服务器分流部署的分布式项目,针对该项目的自动化部署所作的持续集成拓扑图如下所示(截图有限,只画了3台,意思到位即可,IP为虚拟IP):一.jenkins需要装的插件Git,Pipeline,Publish Over SSH等搜索安装即可二.配...原创 2021-10-19 11:46:59 · 1577 阅读 · 0 评论 -
Linux自定义shell脚本一键启停微服务jar包
Java项目在Linux系统中的部署通常是以tomcat等容器化的方式部署,或者jar包的形式直接运行。在自动化部署畅行的今天,仍然会有不少的公司采用手动部署的方式部署 jar 包。而微服务打包形成的诸多jar,和上线前后频繁的诸多升级部署操作,让负责项目的开发运维人员叫苦不迭,因此需要一套便捷的部署脚本,实现便捷的一键启停等操作。1.常用的部署命令:ps -ef |grep 服务名kill -9 PIDnohup java -jar 服务名 &tail -f nohup.out.原创 2021-10-18 14:37:59 · 1172 阅读 · 2 评论 -
Linux服务器搭建VUE + Nginx部署环境
一.VUE相关环境搭建1.去Node.js官网选择合适版本的Node.js,下载安装wget https://nodejs.org/dist/v12.18.0/node-v12.18.0-linux-x64.tar.xz解压缩至指定文件位置xz -d node-v14.3.0-linux-x64.tar.xztar -xvf node-v14.3.0-linux-x64.tar重命名文件夹mv node-v14.3.0-linux-x64 nodeJS-V14.3.0原创 2020-06-03 14:42:06 · 1423 阅读 · 0 评论 -
接口联调踩坑记
一个集团内部系统间为了避免数据孤岛的情况出现,总是少不了数据的同步,因此系统间的接口就必不可少。但是开发出的接口在对接的时候总是会出现各种各样奇葩的问题。这里记录几种日常接口对接所踩的坑(注意:这里的接口联调是后端传后端,并非所谓的前后端对接)1.所调接口网络不通有些公司使用的是集团内部网络,经常会出现服务器之间网络不通的情况,Linux服务器排查思路测试对接的目标接口网络#telnet命令telnet 域名/IP 端口如: telnet xxx.xxx.com 443#...原创 2020-05-30 21:01:15 · 1287 阅读 · 0 评论 -
一些开发常用的js语句总结
在一些原生的jsp开发中,总会使用到一些js的语法。作为Java工程师,如果是在这种前后端不分离的开发模式下做开发,熟练原生的js语法是必备的工作能力。这里总结下,在jsp开发中最常用的一些js语句。1.$(function() {})函数使用示例:$(function(){ getList(); //获取页面列表}); 该函数是$(document).ready(function()的简写$(document).ready(function () { ...原创 2020-05-27 15:34:59 · 427 阅读 · 0 评论 -
给tomcat项目访问工程以外的静态文件资源
有这样一个需求:一个传统的项目,文件存储文件都是存储在Oracle数据库中或电脑指定硬盘,随着时间和用户翻雪球似的量变,Oracle文件表因为太大,查询性能十分差;而存储在硬盘的文件内存也即将满了,电脑硬盘扩容是个大问题,如果要迁移文件吧,之前的文件就不能按照之前的路径去访问查看了。改造工程迫在眉睫,托尼老师打算这样来:1.为了方便扩容和数据迁移,存储介质改成共享磁盘,就挂在在项目的服务器,把...原创 2020-04-30 14:05:17 · 586 阅读 · 0 评论 -
记一次生产Dubbo线程池耗尽的问题排查处理
运维的某一系统,技术架构采用Dubbo + SSM(Spring + SpringMVC + Mybatis)开发,项目拆分成N个大模块,分布式部署在N台服务器上,注册中心采用zookeeper。该系统在交付使用一段时间后,随着用户量和请求数的不断增加,出现了系统性能的瓶颈。因此需要系统治疗师给它压脉诊断,找出病端,提升性能。系统在交付之初是初始化配置的,并没有做针对性的优化。这不...原创 2020-04-10 15:42:27 · 2565 阅读 · 1 评论