472 lines
18 KiB
Plaintext
472 lines
18 KiB
Plaintext
emqx_ee_bridge_kafka {
|
||
config_enable {
|
||
desc {
|
||
en: "Enable (true) or disable (false) this Kafka bridge."
|
||
zh: "启用(true)或停用该(false)Kafka 数据桥接。"
|
||
}
|
||
label {
|
||
en: "Enable or Disable"
|
||
zh: "启用或停用"
|
||
}
|
||
}
|
||
desc_config {
|
||
desc {
|
||
en: """Configuration for a Kafka bridge."""
|
||
zh: """Kafka 桥接配置"""
|
||
}
|
||
label {
|
||
en: "Kafka Bridge Configuration"
|
||
zh: "Kafka 桥接配置"
|
||
}
|
||
}
|
||
desc_type {
|
||
desc {
|
||
en: """The Bridge Type"""
|
||
zh: """桥接类型"""
|
||
}
|
||
label {
|
||
en: "Bridge Type"
|
||
zh: "桥接类型"
|
||
}
|
||
}
|
||
desc_name {
|
||
desc {
|
||
en: """Bridge name, used as a human-readable description of the bridge."""
|
||
zh: """桥接名字,可读描述"""
|
||
}
|
||
label {
|
||
en: "Bridge Name"
|
||
zh: "桥接名字"
|
||
}
|
||
}
|
||
producer_opts {
|
||
desc {
|
||
en: "Local MQTT data source and Kafka bridge configs."
|
||
zh: "本地 MQTT 数据源和 Kafka 桥接的配置。"
|
||
}
|
||
label {
|
||
en: "MQTT to Kafka"
|
||
zh: "MQTT 到 Kafka"
|
||
}
|
||
}
|
||
producer_mqtt_opts {
|
||
desc {
|
||
en: "MQTT data source. Optional when used as a rule-engine action."
|
||
zh: "需要桥接到 MQTT 源主题。"
|
||
}
|
||
label {
|
||
en: "MQTT Source Topic"
|
||
zh: "MQTT 源主题"
|
||
}
|
||
}
|
||
mqtt_topic {
|
||
desc {
|
||
en: "MQTT topic or topic as data source (bridge input)."
|
||
zh: "指定 MQTT 主题作为桥接的数据源"
|
||
}
|
||
label {
|
||
en: "Source MQTT Topic"
|
||
zh: "源 MQTT 主题"
|
||
}
|
||
}
|
||
producer_kafka_opts {
|
||
desc {
|
||
en: "Kafka producer configs."
|
||
zh: "Kafka 生产者参数。"
|
||
}
|
||
label {
|
||
en: "Kafka Producer"
|
||
zh: "生产者参数"
|
||
}
|
||
}
|
||
bootstrap_hosts {
|
||
desc {
|
||
en: "A comma separated list of Kafka <code>host:port</code> endpoints to bootstrap the client."
|
||
zh: "用逗号分隔的 <code>host:port</code> 主机列表。"
|
||
}
|
||
label {
|
||
en: "Bootstrap Hosts"
|
||
zh: "主机列表"
|
||
}
|
||
}
|
||
connect_timeout {
|
||
desc {
|
||
en: "Maximum wait time for TCP connection establishment (including authentication time if enabled)."
|
||
zh: "建立 TCP 连接时的最大等待时长(若启用认证,这个等待时长也包含完成认证所需时间)。"
|
||
}
|
||
label {
|
||
en: "Connect Timeout"
|
||
zh: "连接超时"
|
||
}
|
||
}
|
||
min_metadata_refresh_interval {
|
||
desc {
|
||
en: "Minimum time interval the client has to wait before refreshing Kafka broker and topic metadata. "
|
||
"Setting too small value may add extra load on Kafka."
|
||
zh: "刷新 Kafka broker 和 Kafka 主题元数据段最短时间间隔。设置太小可能会增加 Kafka 压力。"
|
||
}
|
||
label {
|
||
en: "Min Metadata Refresh Interval"
|
||
zh: "元数据刷新最小间隔"
|
||
}
|
||
}
|
||
metadata_request_timeout {
|
||
desc {
|
||
en: "Maximum wait time when fetching metadata from Kafka."
|
||
zh: "刷新元数据时最大等待时长。"
|
||
}
|
||
label {
|
||
en: "Metadata Request Timeout"
|
||
zh: "元数据请求超时"
|
||
}
|
||
}
|
||
authentication {
|
||
desc {
|
||
en: "Authentication configs."
|
||
zh: "认证参数。"
|
||
}
|
||
label {
|
||
en: "Authentication"
|
||
zh: "认证"
|
||
}
|
||
}
|
||
socket_opts {
|
||
desc {
|
||
en: "Extra socket options."
|
||
zh: "更多 Socket 参数设置。"
|
||
}
|
||
label {
|
||
en: "Socket Options"
|
||
zh: "Socket 参数"
|
||
}
|
||
}
|
||
auth_sasl_mechanism {
|
||
desc {
|
||
en: "SASL authentication mechanism."
|
||
zh: "SASL 认证方法名称。"
|
||
}
|
||
label {
|
||
en: "Mechanism"
|
||
zh: "认证方法"
|
||
}
|
||
}
|
||
auth_sasl_username {
|
||
desc {
|
||
en: "SASL authentication username."
|
||
zh: "SASL 认证的用户名。"
|
||
}
|
||
label {
|
||
en: "Username"
|
||
zh: "用户名"
|
||
}
|
||
}
|
||
auth_sasl_password {
|
||
desc {
|
||
en: "SASL authentication password."
|
||
zh: "SASL 认证的密码。"
|
||
}
|
||
label {
|
||
en: "Password"
|
||
zh: "密码"
|
||
}
|
||
}
|
||
auth_kerberos_principal {
|
||
desc {
|
||
en: "SASL GSSAPI authentication Kerberos principal. "
|
||
"For example <code>client_name@MY.KERBEROS.REALM.MYDOMAIN.COM</code>, "
|
||
"NOTE: The realm in use has to be configured in /etc/krb5.conf in EMQX nodes."
|
||
zh: "SASL GSSAPI 认证方法的 Kerberos principal,"
|
||
"例如 <code>client_name@MY.KERBEROS.REALM.MYDOMAIN.COM</code>"
|
||
"注意:这里使用的 realm 需要配置在 EMQX 服务器的 /etc/krb5.conf 中"
|
||
}
|
||
label {
|
||
en: "Kerberos Principal"
|
||
zh: "Kerberos Principal"
|
||
}
|
||
}
|
||
auth_kerberos_keytab_file {
|
||
desc {
|
||
en: "SASL GSSAPI authentication Kerberos keytab file path. "
|
||
"NOTE: This file has to be placed in EMQX nodes, and the EMQX service runner user requires read permission."
|
||
zh: "SASL GSSAPI 认证方法的 Kerberos keytab 文件。"
|
||
"注意:该文件需要上传到 EMQX 服务器中,且运行 EMQX 服务的系统账户需要有读取权限。"
|
||
}
|
||
label {
|
||
en: "Kerberos keytab file"
|
||
zh: "Kerberos keytab 文件"
|
||
}
|
||
}
|
||
socket_send_buffer {
|
||
desc {
|
||
en: "Fine tune the socket send buffer. The default value is tuned for high throughput."
|
||
zh: "TCP socket 的发送缓存调优。默认值是针对高吞吐量的一个推荐值。"
|
||
}
|
||
label {
|
||
en: "Socket Send Buffer Size"
|
||
zh: "Socket 发送缓存大小"
|
||
}
|
||
}
|
||
socket_receive_buffer {
|
||
desc {
|
||
en: "Fine tune the socket receive buffer. The default value is tuned for high throughput."
|
||
zh: "TCP socket 的收包缓存调优。默认值是针对高吞吐量的一个推荐值。"
|
||
}
|
||
label {
|
||
en: "Socket Receive Buffer Size"
|
||
zh: "Socket 收包缓存大小"
|
||
}
|
||
}
|
||
socket_nodelay {
|
||
desc {
|
||
en: "When set to 'true', TCP buffer sent as soon as possible. "
|
||
"Otherwise, the OS kernel may buffer small TCP packets for a while (40 ms by default)."
|
||
zh: "设置 ‘true' 让系统内核立即发送。否则当需要发送当内容很少时,可能会有一定延迟(默认 40 毫秒)。"
|
||
}
|
||
label {
|
||
en: "No Delay"
|
||
zh: "是否延迟发送"
|
||
}
|
||
}
|
||
kafka_topic {
|
||
desc {
|
||
en: "Kafka topic name"
|
||
zh: "Kafka 主题名称"
|
||
}
|
||
label {
|
||
en: "Kafka Topic Name"
|
||
zh: "Kafka 主题名称"
|
||
}
|
||
}
|
||
kafka_message {
|
||
desc {
|
||
en: "Template to render a Kafka message."
|
||
zh: "用于生成 Kafka 消息的模版。"
|
||
}
|
||
label {
|
||
en: "Kafka Message Template"
|
||
zh: "Kafka 消息模版"
|
||
}
|
||
}
|
||
kafka_message_key {
|
||
desc {
|
||
en: "Template to render Kafka message key. "
|
||
"If the desired variable for this template is not found in the input data "
|
||
"<code>NULL</code> is used."
|
||
zh: "生成 Kafka 消息 Key 的模版。当所需要的输入没有时,会使用 <code>NULL</code>。"
|
||
}
|
||
label {
|
||
en: "Message Key"
|
||
zh: "消息的 Key"
|
||
}
|
||
}
|
||
kafka_message_value {
|
||
desc {
|
||
en: "Template to render Kafka message value. "
|
||
"If the desired variable for this template is not found in the input data "
|
||
"<code>NULL</code> is used."
|
||
zh: "生成 Kafka 消息 Value 的模版。当所需要的输入没有时,会使用 <code>NULL</code>。"
|
||
}
|
||
label {
|
||
en: "Message Value"
|
||
zh: "消息的 Value"
|
||
}
|
||
}
|
||
kafka_message_timestamp {
|
||
desc {
|
||
en: "Which timestamp to use. "
|
||
"The timestamp is expected to be a millisecond precision Unix epoch "
|
||
"which can be in string format, e.g. <code>1661326462115</code> or "
|
||
"<code>'1661326462115'</code>. "
|
||
"When the desired data field for this template is not found, "
|
||
"or if the found data is not a valid integer, "
|
||
"the current system timestamp will be used."
|
||
zh: "生成 Kafka 消息时间戳的模版。"
|
||
"该时间必需是一个整型数值(可以是字符串格式)例如 <code>1661326462115</code> "
|
||
"或 <code>'1661326462115'</code>。"
|
||
"当所需的输入字段不存在,或不是一个整型时,"
|
||
"则会使用当前系统时间。"
|
||
}
|
||
label {
|
||
en: "Message Timestamp"
|
||
zh: "消息的时间戳"
|
||
}
|
||
}
|
||
max_batch_bytes {
|
||
desc {
|
||
en: "Maximum bytes to collect in a Kafka message batch. "
|
||
"Most of the Kafka brokers default to a limit of 1 MB batch size. "
|
||
"EMQX's default value is less than 1 MB in order to compensate "
|
||
"Kafka message encoding overheads (especially when each individual message is very small). "
|
||
"When a single message is over the limit, it is still sent (as a single element batch)."
|
||
zh: "最大消息批量字节数。"
|
||
"大多数 Kafka 环境的默认最低值是 1 MB,EMQX 的默认值比 1 MB 更小是因为需要"
|
||
"补偿 Kafka 消息编码索需要的额外字节(尤其是当每条消息都很小的情况下)。"
|
||
"当单个消息的大小超过该限制时,它仍然会被发送,(相当于该批量中只有单个消息)。"
|
||
}
|
||
label {
|
||
en: "Max Batch Bytes"
|
||
zh: "最大批量字节数"
|
||
}
|
||
}
|
||
compression {
|
||
desc {
|
||
en: "Compression method."
|
||
zh: "压缩方法。"
|
||
}
|
||
label {
|
||
en: "Compression"
|
||
zh: "压缩"
|
||
}
|
||
}
|
||
partition_strategy {
|
||
desc {
|
||
en: "Partition strategy is to tell the producer how to dispatch messages to Kafka partitions.\n\n"
|
||
"<code>random</code>: Randomly pick a partition for each message\n"
|
||
"<code>key_dispatch</code>: Hash Kafka message key to a partition number\n"
|
||
zh: "设置消息发布时应该如何选择 Kafka 分区。\n\n"
|
||
"<code>random</code>: 为每个消息随机选择一个分区。\n"
|
||
"<code>key_dispatch</code>: Hash Kafka message key to a partition number\n"
|
||
}
|
||
label {
|
||
en: "Partition Strategy"
|
||
zh: "分区选择策略"
|
||
}
|
||
}
|
||
required_acks {
|
||
desc {
|
||
en: "Required acknowledgements for Kafka partition leader to wait for its followers "
|
||
"before it sends back the acknowledgement to EMQX Kafka producer\n\n"
|
||
"<code>all_isr</code>: Require all in-sync replicas to acknowledge.\n"
|
||
"<code>leader_only</code>: Require only the partition-leader's acknowledgement.\n"
|
||
"<code>none</code>: No need for Kafka to acknowledge at all.\n"
|
||
zh: "设置 Kafka leader 在返回给 EMQX 确认之前需要等待多少个 follower 的确认。\n\n"
|
||
"<code>all_isr</code>: 需要所有的在线复制者都确认。\n"
|
||
"<code>leader_only</code>: 仅需要分区 leader 确认。\n"
|
||
"<code>none</code>: 无需 Kafka 回复任何确认。\n"
|
||
}
|
||
label {
|
||
en: "Required Acks"
|
||
zh: "Kafka 确认数量"
|
||
}
|
||
}
|
||
partition_count_refresh_interval {
|
||
desc {
|
||
en: "The time interval for Kafka producer to discover increased number of partitions.\n"
|
||
"After the number of partitions is increased in Kafka, EMQX will start taking the \n"
|
||
"discovered partitions into account when dispatching messages per <code>partition_strategy</code>."
|
||
zh: "配置 Kafka 刷新分区数量的时间间隔。\n"
|
||
"EMQX 发现 Kafka 分区数量增加后,会开始按 <code>partition_strategy<code> 配置,把消息发送到新的分区中。"
|
||
}
|
||
label {
|
||
en: "Partition Count Refresh Interval"
|
||
zh: "分区数量刷新间隔"
|
||
}
|
||
}
|
||
max_inflight {
|
||
desc {
|
||
en: "Maximum number of batches allowed for Kafka producer (per-partition) to send before receiving acknowledgement from Kafka. "
|
||
"Greater value typically means better throughput. However, there can be a risk of message reordering when this "
|
||
"value is greater than 1."
|
||
zh: "设置 Kafka 生产者(每个分区一个)在收到 Kafka 的确认前最多发送多少个请求(批量)。"
|
||
"调大这个值通常可以增加吞吐量,但是,当该值设置大于 1 是存在消息乱序的风险。"
|
||
}
|
||
label {
|
||
en: "Max Inflight"
|
||
zh: "飞行窗口"
|
||
}
|
||
}
|
||
producer_buffer {
|
||
desc {
|
||
en: "Configure producer message buffer.\n\n"
|
||
"Tell Kafka producer how to buffer messages when EMQX has more messages to send than "
|
||
"Kafka can keep up, or when Kafka is down.\n\n"
|
||
zh: "配置消息缓存的相关参数。\n\n"
|
||
"当 EMQX 需要发送的消息超过 Kafka 处理能力,或者当 Kafka 临时下线时,EMQX 内部会将消息缓存起来。"
|
||
}
|
||
label {
|
||
en: "Message Buffer"
|
||
zh: "消息缓存"
|
||
}
|
||
}
|
||
buffer_mode {
|
||
desc {
|
||
en: "Message buffer mode.\n\n"
|
||
"<code>memory</code>: Buffer all messages in memory. The messages will be lost in case of EMQX node restart\n"
|
||
"<code>disc</code>: Buffer all messages on disk. The messages on disk are able to survive EMQX node restart.\n"
|
||
"<code>hybrid</code>: Buffer message in memory first, when up to certain limit "
|
||
"(see <code>segment_bytes</code> config for more information), then start offloading "
|
||
"messages to disk, Like <code>memory</code> mode, the messages will be lost in case of "
|
||
"EMQX node restart."
|
||
zh: "消息缓存模式。\n"
|
||
"<code>memory</code>: 所有的消息都缓存在内存里。如果 EMQX 服务重启,缓存的消息会丢失。\n"
|
||
"<code>disc</code>: 缓存到磁盘上。EMQX 重启后会继续发送重启前未发送完成的消息。\n"
|
||
"<code>hybrid</code>: 先将消息缓存在内存中,当内存中的消息堆积超过一定限制"
|
||
"(配置项 <code>segment_bytes</code> 描述了该限制)后,后续的消息会缓存到磁盘上。"
|
||
"与 <code>memory</code> 模式一样,如果 EMQX 服务重启,缓存的消息会丢失。"
|
||
}
|
||
label {
|
||
en: "Buffer Mode"
|
||
zh: "缓存模式"
|
||
}
|
||
}
|
||
buffer_per_partition_limit {
|
||
desc {
|
||
en: "Number of bytes allowed to buffer for each Kafka partition. "
|
||
"When this limit is exceeded, old messages will be dropped in a trade for credits "
|
||
"for new messages to be buffered."
|
||
zh: "为每个 Kafka 分区设置的最大缓存字节数。当超过这个上限之后,老的消息会被丢弃,"
|
||
"为新的消息腾出空间。"
|
||
}
|
||
label {
|
||
en: "Per-partition Buffer Limit"
|
||
zh: "Kafka 分区缓存上限"
|
||
}
|
||
}
|
||
buffer_segment_bytes {
|
||
desc {
|
||
en: "Applicable when buffer mode is set to <code>disk</code> or <code>hybrid</code>.\n"
|
||
"This value is to specify the size of each on-disk buffer file."
|
||
zh: "当缓存模式是 <code>disk</code> 或 <code>hybrid</code> 时适用。"
|
||
"该配置用于指定缓存到磁盘上的文件的大小。"
|
||
}
|
||
label {
|
||
en: "Segment File Bytes"
|
||
zh: "缓存文件大小"
|
||
}
|
||
}
|
||
buffer_memory_overload_protection {
|
||
desc {
|
||
en: "Applicable when buffer mode is set to <code>memory</code> or <code>hybrid</code>.\n"
|
||
"EMQX will drop old cached messages under high memory pressure. "
|
||
"The high memory threshold is defined in config <code>sysmon.os.sysmem_high_watermark</code>."
|
||
zh: "缓存模式是 <code>memory</code> 或 <code>hybrid</code> 时适用。"
|
||
"当系统处于高内存压力时,从队列中丢弃旧的消息以减缓内存增长。"
|
||
"内存压力值由配置项 <code>sysmon.os.sysmem_high_watermark</code> 决定。"
|
||
}
|
||
label {
|
||
en: "Memory Overload Protection"
|
||
zh: "内存过载保护"
|
||
}
|
||
}
|
||
auth_username_password {
|
||
desc {
|
||
en: "Username/password based authentication."
|
||
zh: "基于用户名密码的认证。"
|
||
}
|
||
label {
|
||
en: "Username/password Auth"
|
||
zh: "用户名密码认证"
|
||
}
|
||
}
|
||
auth_gssapi_kerberos {
|
||
desc {
|
||
en: "Use GSSAPI/Kerberos authentication."
|
||
zh: "使用 GSSAPI/Kerberos 认证。"
|
||
}
|
||
label {
|
||
en: "GSSAPI/Kerberos"
|
||
zh: "GSSAPI/Kerberos"
|
||
}
|
||
}
|
||
}
|