第 40 章 端点接口


摘要

本章论述了如何实施 Apache Camel 组件,这是实施 Apache Camel 组件的基本步骤。

40.1. 端点接口

概述

org.apache.camel.Endpoint 类型的实例封装端点 URI,它也充当 消费者生产者Exchange 对象的工厂。实施端点的方法有三种:

  • Event-driven
  • 调度的轮询
  • 轮询

这些端点实施模式补充了实施 consumer dhcpd-vault 的对应模式,请参阅 第 41.2 节 “实施消费者接口”

图 40.1 “端点继承层次结构” 显示组成 Endpoint 继承层次结构的相关 Java 接口和类。

图 40.1. 端点继承层次结构

端点继承层次结构

Endpoint 接口

例 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;
}

端点方法

Endpoint 接口定义了以下方法:

  • 如果要确保每个 URI 映射到 CamelContext 中的单个端点,则 isSingleton () InstallSucceeded。当此属性为 true 时,对路由中相同 URI 的多个引用始终引用 单个 端点实例。当此属性为 false 时,在另一方面,路由内同一 URI 的多个引用指的是 不同的 端点实例。每次引用路由中的 URI 时,都会创建一个新端点实例。
  • getEndpointUri () 方式-确保此端点的端点 URI。
  • 在注册端点 时,gener.apache.camel.spi.LifecycleStrategy 没有被 org.apache.camel.spi.LifecycleStrategy
  • getCamelContext () WWN-strategyre 返回了此端点所属的 CamelContext 实例的引用。
  • setCamelContext () vgname-sandboxedSets CamelContext 实例与该端点所属的 CamelContext 实例。
  • configureProperties () TOKEN-确保Stores 是一个参数映射副本,该映射用于在创建新 消费者 实例时注入参数。
  • isLenientProperties () 集群角色绑定-awxReturns true 表示 URI 被允许包含未知参数(即,不能在 Endpoint 或 Consumer 类上注入的参数)。通常,应实施此方法以返回 false
  • 通过以下变体 创建Exchange () CURRENTloads 方法:

    • Exchange createExchange () WWN-»Creates 提供了一个具有默认交换模式设置的新交换实例。
    • Exchange createExchange (ExchangePattern) ALLOW-WWNCreates a new exchange instance with specified exchange mode。
    • Exchange createExchange (Exchange exchange) 将给定 交换 参数设置为此端点所需的交换类型。如果给定交换还没有正确类型,此方法会将其复制到正确类型的新实例。此方法的默认实现在 DefaultEndpoint 类中提供。
  • createProducer () onnectionFactory-FactorFactory 方法用于创建新的 Producer 实例。
  • 创建Consumer () 方式,以创建新的事件驱动的消费者实例。processor 参数引用路由中的第一个处理器。
  • 创建PollingConsumer () 方式,以创建新的轮询消费者实例。

端点单例

为避免不必要的开销,最好为具有相同 URI (在 CamelContext 中)的所有端点创建一个端点实例。您可以通过实施 isSingleton () 来返回 true 来实施此条件。

注意

在这个上下文中,同一 URI 意味着两个 URI 使用字符串相等。在原则上,可以使用两个等同的 URI,但由不同的字符串表示。在这种情况下,URI 不会被视为相同。

Red Hat logoGithubRedditYoutube

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.