• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

이 한글 문서는 사용자의 편의를 위해 기계 번역되었습니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

Java 비동기 계측 소개

New Relic for Java (Java용 New Relic에는) 비동기 활동의 정의 측정을 위한 API 메소드 세트가 포함되어 있습니다. 이는 지원되지 않는 프레임워크 의 비동기 활동에 가장 유용하지만 API를 사용하여 지원되는 프레임워크에 측정, 리소스를 추가할 수도 있습니다. 이 문서에서는 비동기 활동이 발생하는 방식과 New Relic이 비동기 작업을 모니터링하는 방법을 설명합니다.

비동기 작업

동기식 프로그래밍 모델에서 프로그래밍 작업은 일반적으로 특정 순서로 실행됩니다. 하나의 작업은 다음 작업이 시작되기 전에 완료되어야 하며, 각 작업은 다음 작업이 완료되는 것을 차단합니다.

비동기 프로그래밍은 작업을 병렬로 실행할 수 있도록 비차단 모델을 사용합니다. 비동기식으로 실행되는 작업은 실행 및 초기화에서 서로 완전히 독립적입니다. 비동기 코드는 특정 순서로 실행되지 않기 때문에 서버의 전체 처리 능력을 보다 효율적으로 사용할 수 있고 앱의 처리량이 증가합니다.

비동기 및 스레드 전환

비동기 처리를 사용하는 응용 프로그램의 경우 스레드 전환은 프로그램이나 작업이 한 스레드에서 다른 스레드로 전환 될 때입니다. 이러한 비동기 인터리빙을 이해하면 계측해야 할 메서드를 결정하는 데 도움이 될 수 있습니다.

다음은 외부 요청을 병렬로 수행하는 컨트롤러가 있는 예제 메서드입니다. 이러한 요청은 비동기식으로 실행되므로 각 요청은 서로 독립적으로 실행되고 getScoreAsync() 은 호출된 직후에 반환됩니다. 이렇게 하면 getScoreAsync() 이 외부 호출을 하고 응답을 보내는 동안 요청 스레드가 계속 요청을 할 수 있습니다.

@ResponseBody
@RequestMapping("getScores", method = RequestMethod.Get
produces = "text/plain")
public String getCreditScores(@RequestParam(name = "uids") uids) {
return Arrays.stream(uids.split(","))
.parallel()
.map(Integer::valueOf)
.map(uid -> getScoreAsync(uid))
.collect(Collectors.toList());}

이러한 요청 중 일부는 다른 요청보다 먼저 완료됩니다. 일부는 요청한 스레드가 다른 작업으로 이동한 후 완료될 수도 있습니다.

에서 UI, 트레이스 세부 정보 폭포 보기에서 UI는 비동기 활동을 수평 x축에서 겹치는 것으로 표시합니다.

비동기 및 응답 시간

응답 시간 은 요청자의 관점에서 트랜잭션의 지속 시간으로 정의됩니다. 비동기식 애플리케이션의 경우 응답 시간이 총 트랜잭션 시간보다 짧은 경우가 많습니다. 메서드가 반환하기 전에 이전 메서드가 모두 완료될 때까지 기다릴 필요가 없기 때문입니다. 작업이 지연될 수 있기 때문에 응용 프로그램은 제한된 리소스를 활용하고 작업을 더 빠르게 처리할 수 있습니다.

차트의 응답 타임 라인은 총 웹 트랜잭션 시간보다 애플리케이션의 인지된 동작과 속도에 대한 더 많은 통찰력을 제공합니다.

one.newrelic.com > All capabilities > APM & services > (앱 선택) > Summary: APM Summary [요약] 페이지에서 Java 앱의 비동기 활동으로 인해 응답 시간(파란색 선)이 총 트랜잭션보다 적을 수 있습니다. 시간. 이는 메서드가 반환하기 전에 이전의 모든 메서드가 완료될 때까지 기다릴 필요가 없기 때문입니다.

비동기 API를 사용한 사용자 정의 계측

비동기 작업의 사용자 지정 계측을 구현하려면 Java 에이전트 비동기 API 가이드 를 참조하세요. Java 에이전트 API 사용 방법에 대한 일반 정보는 Java 에이전트 API 가이드 를 참조하십시오.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.