40장. 엔드 포인트 인터페이스


초록

이 장에서는 Apache Camel 구성 요소를 구현하는 데 중요한 단계인 Endpoint 인터페이스를 구현하는 방법을 설명합니다.

40.1. 끝점 인터페이스

40.1.1. 개요

org.apache.camel.Endpoint 유형의 인스턴스는 엔드포인트 URI를 캡슐화하며 Consumer,ProducerExchange 오브젝트의 팩토리 역할을 합니다. 끝점을 구현하는 세 가지 방법이 있습니다.

  • 이벤트 중심
  • 예약된 폴링
  • 폴링

이러한 끝점 구현 패턴은 소비자 Cryostat- Cryostat 참조 41.2절. “소비자 인터페이스 구현” 를 구현하기 위한 해당 패턴을 보완합니다.

그림 40.1. “엔드포인트 상속 계층 구조” 엔드포인트 상속 계층 구조를 구성하는 관련 Java 인터페이스 및 클래스를 표시합니다.

그림 40.1. 엔드포인트 상속 계층 구조

끝점 상속 계층

40.1.2. 끝점 인터페이스

예 40.1. “엔드 포인트 인터페이스” org.apache.camel.Endpoint 인터페이스의 정의를 보여줍니다.

예 40.1. 엔드 포인트 인터페이스

package org.apache.camel;

public interface Endpoint {
    boolean isSingleton();

    String getEndpointUri();

    String getEndpointKey();

    CamelContext getCamelContext();
    void setCamelContext(CamelContext context);

    void configureProperties(Map options);

    boolean isLenientProperties();

    Exchange createExchange();
    Exchange createExchange(ExchangePattern pattern);
    Exchange createExchange(Exchange exchange);

    Producer createProducer() throws Exception;

    Consumer createConsumer(Processor processor) throws Exception;
    PollingConsumer createPollingConsumer() throws Exception;
}

40.1.3. 끝점 방법

Endpoint 인터페이스는 다음 방법을 정의합니다.

  • isSingleton() Cryostat- Cryostat true, 각 URI가 CamelContext 내에서 단일 끝점에 매핑되도록 하려면 true입니다. 이 속성이 true 인 경우 경로 내의 동일한 URI에 대한 여러 참조는 항상 단일 끝점 인스턴스를 나타냅니다. 반면 이 속성이 false 인 경우 경로 내의 동일한 URI에 대한 여러 참조가 고유한 엔드포인트 인스턴스를 나타냅니다. 경로의 URI를 참조할 때마다 새 엔드포인트 인스턴스가 생성됩니다.
  • getEndpointUri() 이 끝점의 엔드포인트 URI를 반환합니다.
  • 엔드포인트를 등록할 때 org.apache.camel.spi.LifecycleStrategy 에 의해 사용되는 getEndpointKey() Cryostat- CryostatUsed
  • getCamelContext() Cryostat- Cryostat 이 엔드포인트가 속한 CamelContext 인스턴스에 대한 참조를 반환합니다.
  • setCamelContext() Cryostat-이 끝점이 속한 CamelContext 인스턴스를 설정합니다.
  • ConfigureProperties() Cryostat- CryostatStores 새 Consumer 인스턴스를 생성할 때 매개 변수를 삽입하는 데 사용되는 매개변수 맵의 복사본입니다.
  • URI에 알 수 없는 매개변수(즉, Endpoint 또는 Consumer 클래스에서 삽입할 수 없는 매개 변수)를 포함하는 것이 허용됨을 나타내는 isLenientProperties() 밀리초 true. 일반적으로 이 방법은 false 를 반환하도록 구현해야 합니다.
  • 다음과 같은 변형을 사용하여 오버로드된 메서드를 만듭니다.Recording an overloaded method with the following variants:

    • exchange createExchange() Cryostat-가 기본 교환 패턴 설정으로 새 교환 인스턴스를 만듭니다.
    • exchange createExchange(ExchangePattern 패턴) Cryostat-가 지정된 교환 패턴을 사용하여 새 교환 인스턴스를 만듭니다.
    • Exchange createExchange(Exchange 교환) Cryostat- Cryostat는 지정된 교환 인수를 이 엔드포인트에 필요한 교환 유형으로 변환합니다. 지정된 교환이 올바른 유형이 아닌 경우 이 방법은 올바른 유형의 새 인스턴스에 복사합니다. 이 메서드의 기본 구현은 DefaultEndpoint 클래스에 제공됩니다.
  • createProducer() Cryostat- CryostatFactory 메서드를 사용하여 새 Producer 인스턴스를 생성합니다.
  • createConsumer() Cryostat- CryostatFactory 메서드를 사용하여 새 이벤트 기반 소비자 인스턴스를 생성합니다. 프로세서 인수는 경로의 첫 번째 프로세서에 대한 참조입니다.
  • 새 폴링 소비자 인스턴스를 생성하기 위해 createPollingConsumer() Cryostat- CryostatFactory 메서드.

40.1.4. 끝점 싱글톤

불필요한 오버헤드를 방지하려면 동일한 URI( CamelContext 포함)가 있는 모든 끝점에 대해 단일 엔드포인트 인스턴스를 생성하는 것이 좋습니다. isSingleton() 을 구현하여 이 조건을 적용하여 true 를 반환할 수 있습니다.

참고

이 컨텍스트에서 동일한 URI 는 문자열 같음을 사용하여 비교할 때 두 URI가 동일하다는 것을 의미합니다. 기본적으로 다른 문자열로 표현되지만 동일한 URI를 두 개 가질 수 있습니다. 이 경우 URI를 동일한 것으로 취급하지 않습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.