7.13. 스트림 기반 인터페이스


Red Hat Single Sign-On의 많은 사용자 스토리지 인터페이스에는 대량 오브젝트 세트를 반환할 수 있는 쿼리 방법이 포함되어 있어 메모리 소비 및 처리 시간 측면에서 상당한 영향을 미칠 수 있습니다. 특히 쿼리 메서드의 논리에 개체의 내부 상태의 작은 하위 집합만 사용되는 경우 더욱 그러합니다.

이러한 쿼리 메서드에서 대규모 데이터 세트를 처리할 수 있는 보다 효율적인 대안을 제공하기 위해 Streams 하위 인터페이스가 사용자 스토리지 인터페이스에 추가되었습니다. 이러한 Streams 하위 인터페이스는 수퍼 인터페이스의 원래 컬렉션 기반 메서드를 스트림 기반 변형으로 교체하여 컬렉션 기반 메서드를 기본값으로 설정합니다. 컬렉션 기반 쿼리 메서드의 기본 구현은 Stream 카운터를 호출하고 적절한 컬렉션 유형으로 결과를 수집합니다.

Streams 하위 인터페이스를 사용하면 구현이 데이터 집합 처리를 위한 스트림 기반 접근 방식에 중점을 두고 해당 접근 방식의 잠재적인 메모리 및 성능 최적화를 활용할 수 있습니다. 구현할 Streams 하위 인터페이스를 제공하는 인터페이스에는 몇 가지 기능 인터페이스, org.keycloak.storage.federated 패키지의 모든 인터페이스 및 사용자 정의 스토리지 구현 범위에 따라 구현할 수 있는 몇 가지 기타 항목이 포함됩니다.

개발자에게 Streams 하위 인터페이스를 제공하는 인터페이스 목록을 참조하십시오.

패키지

클래스

org.keycloak.credential

CredentialInputUpdater(*)

org.keycloak.models

GroupModel, RoleMapperModel, UserModel

org.keycloak.storage.federated

모든 인터페이스

org.kecyloak.storage.user

UserQueryProvider(*)

인터페이스가 기능 인터페이스임을 나타냅니다.Indicates the interface is a capability interface

스트림 접근 방식을 활용하려는 사용자 정의 사용자 스토리지 구현은 원래 인터페이스 대신 Streams 하위 인터페이스를 구현하는 것입니다. 예를 들어 다음 코드는 UserQueryProvider 인터페이스의 Streams 변형을 사용합니다.

public class CustomQueryProvider extends UserQueryProvider.Streams {
...
    @Override
    Stream<UserModel> getUsersStream(RealmModel realm, Integer firstResult, Integer maxResults) {
        // custom logic here
    }

    @Override
    Stream<UserModel> searchForUserStream(String search, RealmModel realm) {
        // custom logic here
    }
...
}
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.