commit | 97ac487c9fc25fd6ec8e07c0112c6eb880542a39 | [log] [tgz] |
---|---|---|
author | Luca Milanesio <luca.milanesio@gmail.com> | Thu Oct 14 22:00:05 2021 +0100 |
committer | Luca Milanesio <luca.milanesio@gmail.com> | Thu Nov 04 19:11:53 2021 +0000 |
tree | a1f54d933526485e99bebb26803166e66bca25f2 | |
parent | eb91d06e2a5b8ba1d52837c0134cdcb7cd34cfbb [diff] |
Abstract Publisher/Subscriber into generic interfaces Decouple the interface to send/receive messages to Kafka using generic interfaces bound to the actual native implementation classes. The KafkaSession does not refer anymore to a native KafkaProducer allowing other implementations to be plugged in. This is a preparation work to introduce a REST-API client based access to Kafka REST Proxy through parameters on the events broker plugin config. Change-Id: I6034915c5538e3df365a45e2f134bab50aff932f
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.
linux
java-1.8
Bazel
Kafka 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://gerrit.googlesource.com/gerrit git clone https://gerrit.googlesource.com/plugins/events-kafka gerrit/plugins/events-kafka cd gerrit rm plugins/external_plugin_deps.bzl ln -s ./events-kafka/external_plugin_deps.bzl plugins/.
To build the events-kafka plugins, issue the command from the Gerrit source path:
bazel build plugins/events-kafka
The output is created in
bazel-genfiles/plugins/events-kafka/events-kafka.jar
Assuming a running Kafka broker on the same Gerrit host, add the following settings to gerrit.config:
[plugin "events-kafka"] bootstrapServers = localhost:9092