emqx/lib-ee/emqx_ee_bridge/i18n/emqx_ee_bridge_kafka.conf

472 lines
18 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

emqx_ee_bridge_kafka {
config_enable {
desc {
en: "Enable (true) or disable (false) this Kafka bridge."
zh: "启用true或停用该falseKafka 数据桥接。"
}
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 MBEMQX 的默认值比 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"
}
}
}