docs(kafka): improve kafka consumer/producer API examples

This commit is contained in:
Thales Macedo Garitezi 2023-03-13 14:02:43 -03:00
parent 66eb4ef069
commit 37a35b22df
1 changed files with 72 additions and 8 deletions

View File

@ -43,25 +43,89 @@ conn_bridge_examples(Method) ->
%% for backwards compatibility. %% for backwards compatibility.
<<"kafka">> => #{ <<"kafka">> => #{
summary => <<"Kafka Producer Bridge">>, summary => <<"Kafka Producer Bridge">>,
value => values(Method) value => values({Method, producer})
} }
}, },
#{ #{
<<"kafka_consumer">> => #{ <<"kafka_consumer">> => #{
summary => <<"Kafka Consumer Bridge">>, summary => <<"Kafka Consumer Bridge">>,
value => values(Method) value => values({Method, consumer})
} }
} }
]. ].
values(get) -> values({get, KafkaType}) ->
maps:merge(values(post), ?METRICS_EXAMPLE); maps:merge(values({post, KafkaType}), ?METRICS_EXAMPLE);
values(post) -> values({post, KafkaType}) ->
maps:merge(values(common_config), values(KafkaType));
values({put, KafkaType}) ->
values({post, KafkaType});
values(common_config) ->
#{ #{
bootstrap_hosts => <<"localhost:9092">> authentication => #{
mechanism => <<"plain">>,
username => <<"username">>,
password => <<"password">>
},
bootstrap_hosts => <<"localhost:9092">>,
connect_timeout => <<"5s">>,
enable => true,
metadata_request_timeout => <<"4s">>,
min_metadata_refresh_interval => <<"3s">>,
socket_opts => #{
sndbuf => <<"1024KB">>,
recbuf => <<"1024KB">>,
nodelay => true
}
}; };
values(put) -> values(producer) ->
values(post). #{
kafka => #{
topic => <<"kafka-topic">>,
message => #{
key => <<"${.clientid}">>,
value => <<"${.}">>,
timestamp => <<"${.timestamp}">>
},
max_batch_bytes => <<"896KB">>,
compression => <<"no_compression">>,
partition_strategy => <<"random">>,
required_acks => <<"all_isr">>,
partition_count_refresh_interval => <<"60s">>,
max_inflight => 10,
buffer => #{
mode => <<"hybrid">>,
per_partition_limit => <<"2GB">>,
segment_bytes => <<"100MB">>,
memory_overload_protection => true
}
},
local_topic => <<"mqtt/local/topic">>
};
values(consumer) ->
#{
kafka => #{
max_batch_bytes => <<"896KB">>,
offset_reset_policy => <<"reset_to_latest">>,
offset_commit_interval_seconds => 5
},
key_encoding_mode => <<"force_utf8">>,
topic_mapping => [
#{
kafka_topic => <<"kafka-topic-1">>,
mqtt_topic => <<"mqtt/topic/1">>,
qos => 1,
payload_template => <<"${.}">>
},
#{
kafka_topic => <<"kafka-topic-2">>,
mqtt_topic => <<"mqtt/topic/2">>,
qos => 2,
payload_template => <<"v = ${.value}">>
}
],
value_encoding_mode => <<"force_utf8">>
}.
%% ------------------------------------------------------------------------------------------------- %% -------------------------------------------------------------------------------------------------
%% Hocon Schema Definitions %% Hocon Schema Definitions