2.67. Kubernetes 集群服务
提供 Camel Cluster Service SPI 的 Kubernetes 实现
2.67.1. Maven 协调
在 https://code.quarkus.io 中使用这个扩展创建新项目
或者将协调添加到现有项目中:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-kubernetes-cluster-service</artifactId> </dependency>
2.67.2. 其他 Camel Quarkus 配置
2.67.2.1. 在消耗给定端点的集群中只有一个消费者
当将同一路由部署到多个容器集时,可以将此扩展与主容器集结合使用可能会很 有意义。在这样的设置中,单个消费者将在整个 camel master 命名空间中一次处于活跃状态。
例如,在多个 pod 上部署了以下路由:
from("master:ns:timer:test?period=100").log("Timer invoked on a single pod at a time");
因此,单个消费者将在 ns
camel master 命名空间中活跃。这意味着,在一个给定时间,只有一个计时器将在整个集群中生成交换。换句话说,在某个时间点上,消息将在单个 pod 上每 100ms 进行一次日志记录。
kubernetes 集群服务可以通过 quarkus.camel.cluster.kubernetes nvme
属性进一步调整。
配置属性 | 类型 | default |
---|---|---|
Kubernetes 集群服务是否应根据 'quarkus.camel.cluster.kubernetes.*' 配置自动配置。 |
|
|
camel master 命名空间领导是否应该在集群中的所有 camel 上下文中均匀分布。 |
|
|
集群服务 ID (默认为 null)。 |
| |
Kubernetes 主机的 URL (默认为从 Kubernetes 客户端属性读取)。 |
| |
在向 Kubernetes API 服务器发出请求时使用的连接超时,以毫秒为单位。 |
| |
包含 pod 和 configmap 的 Kubernetes 命名空间的名称(默认为自动探测)。 |
| |
当前 pod 的名称(默认为从容器主机名中自动探测)。 |
| |
要应用的 jitter 因素,以防止所有 pod 在同一即时调用 Kubernetes API (默认为 1.2)。 |
| |
当前领导的租期的默认持续时间(默认为 15000)。 |
| |
领导机必须停止其服务的时间截止时间,因为它可能已经丢失领导权(默认为 10000)。 |
| |
连续两次尝试检查并获取领导权利之间的时间。它利用 jitter 因子(默认为 2000)进行自定义。 |
| |
服务查找顺序/优先级(默认为 2147482647)。 |
| |
用于进行最佳锁定的租期资源的名称(默认为 'leaders')。当底层 Kubernetes 资源可以管理单个锁定时,资源名称用作前缀。 |
| |
Kubernetes 中使用的租期资源类型,可以是 'config-map' 或 'lease'(默认为 'lease')。 |
| |
[[quarkus-camel-cluster-kubernetes-labels-labels]] 用于识别组成集群的 pod 的键/值,默认为空映射。 |
|
在构建时修复的配置属性。所有其他配置属性可在运行时覆盖。