springboot内存泄露问题排查

jvm 3年前 (2020-12-09) 浏览: 3074 评论: 0

John Miiler 是ebay团队的高级后端工程师,负责各种项目,包括结账和支付系统。作为公司摆脱单一业务的努力的一部分,他的团队正试图将业务逻辑一块一块地提取到单独的微服务中。他分享了他的团队如何解决在提取图像处理微服务时遇到的内存使用问题。 最近提取的microservice是一种图像处理服务,它对图像进行大小调整、裁剪、重新编码和执行其他处理操作。这个服务是一个在Docker容器中使用s

JConsole定位内存泄漏

jvm 3年前 (2021-01-09) 浏览: 2494 评论: 0

在本文中,我们将看到Java中内存泄漏的示例代码。之后,我们将把Java应用程序连接到JConsole,比较有无内存泄漏时应用程序的内存使用情况。深入研究JConsole的内存监控工具可以让我们看到堆内存是如何划分为不同的空间的,垃圾收集器是如何有效地管理Java应用程序的内存的。 Java中的垃圾回收 在Java中,垃圾收集器(GC)负责释放未使用对象使用的内存。任何没有引用的对象都可以进行垃圾

Java并行流Parallel Streams介绍

Java系列 3年前 (2021-03-13) 浏览: 2839 评论: 0

Java并行流Parallel Streams是Java8和更高版本的一个特性,用于利用处理器的多个核心。通常,任何java代码都有一个处理流,在这里它是按顺序执行的。然而,通过使用并行流,我们可以将代码分成多个流,这些流在不同的内核上并行执行,最终的结果是各个结果的组合。然而,处理的顺序不在我们的控制之下。 因此,建议在以下情况下使用并行流:无论执行顺序如何,结果不受影响,一个元素的状态不影响另

Java中如何比较两个对象相等?

Java系列 3年前 (2021-10-23) 浏览: 2967 评论: 0

比较对象是面向对象编程语言的一个基本特征。 在本文中,我们将了解Java语言的一些特性,这些特性允许我们比较对象。此外,我们还将研究外部库中的这些特性。 ==  还有!= 运算符 让我们从==和!=开始运算符,可以分别判断两个Java对象是否相同。 原语 对于基本类型,相同意味着具有相等的值: assertThat(1 == 1).isTrue(); 由于自动取消装箱,在将原语值与其包装类型对应项

使用JProfiler查找内存泄漏

jvm 3年前 (2020-12-21) 浏览: 4235 评论: 0

JProfiler是由ej技术开发的java剖析器,它可以帮助开发人员解决性能瓶颈、发现内存泄漏和理解线程问题。它提供了许多有用的工具,如内存分析、分析堆快照的方法以及显示当前正在使用的所有对象的实时内存视图。JProfiler提供了更多的特性,比如数据库分析,但是这些特性不在本文的讨论范围之内。 有很多关于不同类型的内存泄漏及其内存占用情况的博客文章和文章,不幸的是,仅仅基于内存图很难找到内存泄

Apache Pulsar终极指南–流处理平台

相关技术 3年前 (2021-05-28) 浏览: 1263 评论: 0

Apache Pulsar简介 Apache Pulsar是一个多租户、高性能的服务器对服务器消息传递系统。雅虎开发了它。2016年末,这是第一个开源项目。现在它正处于孵化期,在Apache软件基金会(ASF)的领导下。 Pulsar使用pub-sub模式,其中有一个生产者和一个消费者(也称为订阅者),主题是pub-sub模型的核心,生产者发布关于给定Pulsar主题的消息,消费者订阅问题以从该主

Apache Ignite实践

相关技术 3年前 (2021-09-01) 浏览: 809 评论: 0

“让我们假设我们开始为我们的物联网应用开发一个Web服务器,其中包含几个端点,如接收事件的POST、获取DeviceBySensorType、获取全部和更新设备元数据的PUT等。 一开始,公共数据的缓存似乎是次要问题,但如果我们开始考虑长期问题,并且如果我们想要提高性能和/或减少响应时间(例如,当服务从数据库检索数据时),我们就会意识到缓存是一项强制性要求。 最初的解决方案可能是使用始终可靠的Ha

Spock如何解决传统单元测试开发中的痛点

Spock系列 4年前 (2020-08-01) 浏览: 4156 评论: 0

这是Spock系列的第二篇文章,上一篇介绍了Spock的特点以及它和JUnit,JMock的区别,这篇主要讲下我们平时写单元测试过程中遇到的几种常见问题,分别使用JUnit和Spock如何解决,通过对比的方式给大家一个整体认识。 一. 单元测试代码开发的成本和效率 复杂场景的业务代码,在分支(if/else)很多的情况下,编写单测代码的成本会相应增加,正常的业务代码或许只有几十行,但为了测试这个功

找不到或无法加载主类什么意思?

Java系列 3年前 (2021-02-13) 浏览: 6280 评论: 0

今天我们将探讨java的一个常见问题,即如何修复java中的“error:couldnotfind or load main class”错误。顾名思义,当java找不到您要执行的类时,就会发生这个错误。为了更好地理解错误,您应该熟悉类路径CLASSPATH。如果你不熟悉类路径,那么请检查一下什么是类路径以及它与路径的区别。 另请阅读:PATH和CLASSPATH之间的区别 如果java查找所有类

Spock代码讲解-mock第三方依赖

Spock系列 4年前 (2020-08-02) 浏览: 4654 评论: 0

这是Spock系列的第三篇文章,从本篇开始会列举一些典型业务场景下如何使用Spock开发测试代码,具体功能和用法,以及groovy语法特点等(为方便演示,所有业务代码均为示例代码) Spock自带的mock用法 在上一篇讲单元测试代码可读性和维护性的问题时举了一种业务场景,即接口调用,我们的用户服务需要调用用户中心接口获取用户信息,代码如下: /** * 用户服务 * @author 公众号:Ja

Netflix开源DGS框架:GraphQL for Spring Boot

相关技术 3年前 (2021-04-20) 浏览: 1059 评论: 0

Netflix在实现其区域图服务(DGS)框架的几个月内,就向Java社区开放了源代码DGS。这个框架使得在Spring引导软件中实现GraphQL变得更简单,并且适合于每个独立的和联合的GraphQL。DGS帮助GraphQL联邦创建一个统一的API网关,在后台调用特定问题所需的各种合作问题。 DGS框架依赖于springboot基于注释的模型。除了与Spring Boot安全性的集成之外,还提

试用Spring Native Beta版

Serverless 3年前 (2021-07-05) 浏览: 953 评论: 0

环境 Debian 10.8 (WSL2) Docker 社区版(客户端=19.03.11,服务器=20.10.5) GraalVM CE 21.0.0.2(构建 11.0.10+8-jvmci-21.0-b06) Apache Maven 3.6.3 准备工作 使用gs-rest-service(https://github.com/spring-guides/gs-rest-service)。

Java反射替代方案

Java系列 4年前 (2020-11-04) 浏览: 2787 评论: 0

替换反射API调用可以提高性能 有时,作为开发人员,您可能会遇到这样的情况:无法使用new运算符实例化对象,因为它的类名存储在配置XML中的某个位置,或者您需要调用名称指定为注释属性的方法。在这种情况下,您总是有一个答案:使用反射! 您可以通过存储java.lang.reflect.Method实例,并像在许多框架中实现一样调用它们,但我们决定看看其他选项。反射调用有其成本,如果您开发一个生产类框

如何使用Eclipse内存分析器MAT来查找类加载器泄漏

爪哇岛 4年前 (2020-09-23) 浏览: 1586 评论: 0

你可能是因为您的javaweb应用程序在java.lang.OutOfMemoryError:PermGen space(或java.lang.OutOfMemoryError:Metaspace,如果您使用Java 8)。我不会解释这个错误意味着什么,也不会解释它发生的原因,因为网上有很多关于它的信息——例如,请参阅Frank Kieviet关于这个问题及其解决方案的博客。 在第一篇文章中,我将

GraalVM系列之三-从JVM调用JS函数

相关技术 3年前 (2021-08-07) 浏览: 1952 评论: 0

GraalVM是Oracle的一个新的开源项目,它试图使Java虚拟机成为运行所有主要语言的通用虚拟机。在GraalVM之前,已经很少有像Scala、Closure这样的语言将JVM作为其运行时。这对于这些语言来说是非常成功的。GraalVM进一步扩展了这一思想,使得以JVM为目标变得很容易,从而使更多的语言可以在JVM上共存。 GraalVM是从2014年开始的一个研究项目。推特从2017年开始

intellij idea与Eclipse的区别

相关技术 3年前 (2021-03-11) 浏览: 2495 评论: 0

IntelliJ Idea intellij idea是面向Java开发人员的功能最强大、最流行、功能最全的IDEA,于2001年向公众发布。它由Jet Brains公司开发和维护。它由apache2.0授权。 IntelliJ Idea有两个版本: Community 社区版:免费提供,主要用于Java和Android开发者。它支持大多数语言,如Java、Kotlin、Groovy、Clojur

Netflix开源GraphQL框架DGS介绍

相关技术 3年前 (2021-03-22) 浏览: 1863 评论: 0

Netflix开源了领域图形服务 Domain Graph Service (DGS)框架,DGS简化了框架的独立性和联合GraphQL服务的实现。 通过开源项目,希望对Java和GraphQL社区做出贡献,并向所有使用该框架的人学习和合作,使其变得更好。 DGS框架的主要功能包括: 基于注解的Spring-Boot编程模型 将查询测试编写为单元测试的测试框架 Gradle代码生成插件,可以从Gr

Spock如何使用JMockit来mock静态方法

Spock系列 3年前 (2021-06-27) 浏览: 2600 评论: 0

之前的Spock系列mock静态方法主要是通过使用PowerMock实现的,但是使用JMock的同学也挺多的,所以这篇文章讲下在Spock中如何使用JMockit来mock静态方法。 比如下面的业务代码demo,记录日志的logger对象是调用LoggerServiceFactory工厂类的静态方法获取的,这时候就可以使用JMockit把他的静态方法getLoggerService给mock掉,因

Java17 新特性概览

Java系列 3年前 (2021-10-01) 浏览: 3729 评论: 0

Java 17计划于9月14日发布,来自不同供应商的版本将于当天或之后发布。Java 17的特殊之处在于,Oracle和OpenJDK社区决定,这将是一个长期受支持的版本,与Java 11和Java 8之前的版本一样。 自从Java 10引入快速发布节奏以来,除Oracle外,许多供应商都在加紧生产具有不同支持级别的可生产二进制文件,包括Amazon、Azul、BellSoft、Microsoft

JVM学习笔记之client server端区别

Java系列 4年前 (2020-03-01) 浏览: 652 评论: 0

今天继续远程办公,好想出去打篮球,但是怂,外面场地也不开放,只能窝在家憋大招。 互联网公司流行敏捷开发,快速迭代,所以憋出的大招不一定适用(扯远了)。 言归正传这次和大家分享一些虚拟机方面的知识,主要是关于jvm的client和server端区别,支持的工作模式有哪几种以及他们之间的关系。 java -version 命令大家都用过,大部分就是看下jdk版本或检查下环境变量的设置,但最后一行的信息

登录

忘记密码 ?

切换登录

注册