- 博客(24)
- 收藏
- 关注
原创 容器环境下 jvm问题排查
Docker 容器利用 CGroup 对进程使用的资源进行限制,而在容器中的 JVM 依然会利用宿主机环境的内存大小和 CPU 核数进行缺省设置,这导致了 JVM Heap 的错误计算。) + Heap + JVM进程运行所需内存 + 其他数据,我们所设置的 -Xmx 等参数只是限制了 JVM 堆内存(Heap) 的大小,当 -Xmx 设置的值接近与容器限制的值的时候,堆内存 + 非堆内存的使用总和超出了 CGroup 的限制就会被操作系统 Kill 掉。了解了问题的根源,我们就可以非常简单地解决问题了。
2024-11-05 18:34:06 678
原创 Prometheus 监控实施 -- (四)实现Prometheus自动对应用服务进行监控
在常规的运维配置中,每新增一个应用,我们就需要修改Prometheus 的配置文件,重启Prometheus,在这种情况下对于运维监控带来操作不便及较大的维护成本。针对以上问题,Prometheus能不能每新增一个服务可以进行服务发现,自动的去获取服务信息并进行监控呢?
2024-01-07 12:03:59 527
原创 Prometheus 监控实施 -- (三)整合grafana
在服务启动完毕以后,在浏览器中输入 http://XXXX.XXXX.XXXX.XXXXX:19090/在实际应用中,我们还需要根据自身的 需求去筛选对应的指标,这个需要使用花点时间去学习对应语法应用。1、在首页找到配置选项–点击connection下面的 DataSource进行配置。grafana在每个仪表盘中都提供了自定义筛查的设置,需要用户自己去实现。选择DataSource 的类型,在此选择Prometheus。配置完成以后,点击进入仪表盘则将出现对应的数据展示;2、配置DataSource。
2024-01-07 11:51:55 414
原创 Prometheus 监控实施 -- (二)应用服务集成Prometheus
选择合适的镜像,docker镜像可以自己制作也可以从 镜像仓库下载 (https://hub.docker.com/ ) ,本文选择从仓库中下载 bitnami/prometheus 镜像。也可以是选择二进制文件安装,但过程相对复杂,本文只介绍docker安装过程。在浏览器中输入 http://XXXX.XXXX.XXXX.XXXXX:19090/ ,将出现 点击targets 将会出现 下图。1、先使用 docker pull bitnami/prometheus:latest 下载镜像。
2024-01-07 11:40:46 508
原创 Prometheus 监控实施--(一)介绍
Prometheus是一个开源系统监控和警报工具包,最初在SoundCloud上构建。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并澄清项目的治理结构,Prometheus于2016年加入了云原生计算基金会,成为继Kubernetes之后的第二个托管项目。Prometheus将其指标收集并存储为时间序列数据,即指标信息与记录它的时间戳一起存储,以及称为标签的可选键值对。
2024-01-07 11:33:46 343
原创 Elasticsearch+Fluentd+Kibana 日志收集系统的搭建
*值得注意的是,fluent-plugin-elasticsearch 插件的版本应该和 elasticsearch 对应,我这边使用的elasticsearch 为7.6.2 则 fluent-plugin-elasticsearch 应该在 5.0.3,版本无法对应的话,fluent 启动时 将报 无法连接至elasticsearch,如下:**[在这里插入图片描述](https://img-blog.csdnimg.cn/1d4eb6e305e246409a2f31e0357bb8ef.png)
2023-10-24 17:45:13 400
原创 关于慢sql的分析定位
在java项目中最大的隐患项之一就是慢SQL,它影响到服务的稳定性,也是日常工作中经常导致程序的最大隐患,在日常开发中如何避免出现慢SQL,出现了慢SQL应该按照什么思路去解决是我们必须要知道。科学创建索引减少不必要的列查询使用覆盖索引语句改写适当的应用内存进行条件组合分次查询选择合适的列进行排序适当的列冗余,减少关联表SQL 拆分,化繁为简适当结合 ES。
2023-09-24 14:10:47 170
原创 四、【深入了解java虚拟机】jvm内存模型基础知识
在学习jvm相关的知识的时候,总能看到一些专业名词就学科概念,本文整理了一些基础知识,为后面的学习提供基础帮助。
2023-09-14 08:53:51 91
原创 JDK8 升级至 JDK17 打包问题分析
近日为了满足客户需求将项目的jdk版本由原先的1.8升级至17,整个过程比较顺利,但是在maven 打包时出现了报错。报错信息为:(程序包 sun.security.util 已在模块 java.base 中声明, 但该模块未将它导出到未命名模块)
2023-09-12 19:58:06 2244 1
原创 二、【深入了解java虚拟机】class文件的生成-----javac编译器
java是一种跨平台的语言,它的平台无关性让java在计算机上运行时不受平台的约束,可以做到一次编译,到处执行。这也是java能够迅速崛起并长久不衰的一个重要原因。而对于Java的平台无关性的支持,就像对安全性和网络移动性的支持一样,是分布在整个Java体系结构中的。其中扮演者重要的角色的有Java语言规范、Class文件、Java虚拟机(JVM)等。下面通过阅读源码的方式去了解java源码文件编译成class文件的过程。
2023-09-03 12:12:14 473
原创 SpringCould openFeign 配置动态路由实现本地调试
现在很多项目都基于微服务开发,而对于开发来说,最困扰的就是本地服务间的调试。在此之前在网上给出的方案都是 直接在feign 调用接口 写死url,但这会出现团队成员不小心将调试的url提交到仓库中,无形的增加了产线事故的产生。本文将介绍一下我自身基于项目改造的 可配置feign 路由的方案。
2023-06-17 15:15:12 1444
原创 一、【深入了解java虚拟机】了解编译原理
Java作为一种跨平台的编程语言,其源代码需要经过编译器编译成字节码文件(即Class文件),然后由Java虚拟机(JVM)解释执行。这种机制使得Java程序具有良好的可移植性和高效性。因此,了解Java源代码编译器的工作原理以及Class文件的生成过程对于Java程序员来说具有重要意义,而源代码编译成字节码文件的这个过程正是由javac来完成的,本节我们就来了解一下它的工作原理及编译过程。
2023-06-13 08:54:44 92
原创 quartz 定时框架整合多数据源
最近,因为saas系统需要支持 租户可配置数据源的需求,所以将系统改造为多数据源,从而也对定时任务进行改造。
2022-12-31 15:57:32 1815 1
原创 CentOS7 使用docker 安装redis
1、获取 redis版本信息docker search redis2、获取redis镜像(不指定版本,默认拉取最新版本)docker pull redis:5.0.93、创建 redis安装目录mkdir -p /root/redis/data /root/redis/conftouch /root/redis/data /root/redis/conf/redis.conf/root/redis/data 、/root/redis/conf为 redis 挂载目录redis.co
2021-10-21 11:45:14 641 1
原创 CentOS7 使用docker 安装mysql
1、查询 mysql 镜像docker search mysql2、拉取 mysql 镜像,不加版本号则默认拉取最新版本docker pull mysql #可以选择特定版本,如 docker pull mysql 5.53、查看docker镜像docker images4、创建应用目录,如:/opt/mysqlmkdir /opt/mysql 5、进入该目录,设置相关参数并启动容器cd /opt/mysql docker run --name mysqlserver -v
2021-10-21 11:01:47 842
原创 CentOs7 安装docker
Cent os7 安装docker1、先检查自身内核版本uname -r2、使用 root 权限登录,保证 yum 包更新到最新。sudo yum update2.1、如果存在旧版本,则需先删除sudo yum remove docker docker-common docker-selinux docker-engine3、安装需要的软件包, yum-util 提供yum-config-manager功能 sudo yum install -y yum-utils device-m
2021-10-21 10:09:30 121
原创 Mysql笔记(三)-Mysql的事务
一、数据库事务:1、数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。简单而言就是要保证一组数据可以操作,要么全部成功,要嘛全部失败。2、数据库事务的特性数据库事务拥有以下四个特性,习惯上被称之为ACID特性。原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。一致性(Consis...
2019-07-17 07:40:13 113
原创 Mysql笔记(二)-Mysql的日志系统
Mysql笔记(二)-Mysql的日志系统mysql 有两个重要的日志模块,redo log (重做日志) 和 bin log(归档日志)。一、redo logredo log 是innoDB的日志,用于记录数据的更新信息。在更新数据时,如果每一次的操作都需要写进磁盘的话,程序需要在磁盘中找到相对的数据,然后进行更新。整个过程的IO消耗,查找成本很高。为了解决这个问题,Merys...
2019-06-18 07:11:42 193
原创 JVM原理及调优(二)----垃圾收集器
一、概述说起java人们总会想到它的垃圾收集器,从java诞生以来,GC就是它的伴生产物。对于GC我一直有几个疑问,那就是:1、哪些内存是需要被回收的?2、是在什么时候会被回收 ?3、是通过怎么样的机制进行回收?带着这些问题,深入的去学习。二、对象和类的的生命周期2.1、java对象的生命周期java对象在JVM的生命周期有:1、创建(created):对象通过 new、反射、clon...
2019-05-21 08:13:14 154
原创 Linux日常命令整理
** Linux日常命令整理**欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器...
2019-04-29 19:40:22 109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人