Add support for consumer prefetch

If no consumer prefetch is set it becomes unlimited which
means that the rabbitmq server will send as many events as
it can, this can cause the client to be overwhelmed and make
it slow to respond.
When the client respond to slowly the server may decide to
close the connection which causes the channels and consumers
to be lost.
With a limited consumer prefetch we can prevent this.

Bug: Issue 366272560
Change-Id: I599aa024202597c468bd3f792ec0931f40a495f9
3 files changed
tree: 11d31ef955b512571d7b53ffe969fa9df83b2baf
  1. src/
  2. .gitignore
  3. BUILD
  4. external_plugin_deps.bzl
  5. LICENSE
  6. README.md
README.md

gerrit-rabbitmq-plugin: Gerrit event publish plugin via RabbitMQ

Synopsis

Publish gerrit stream events to a RabbitMQ queue. This plugin works with any version of Gerrit starting from v2.8. This plugin also implements most of the events-broker API, so RabbitMQ can be used as a message-broker in a multi-master setup. The one part that is missing is the implementation of the replayAllEvents method. However, this method is not needed by the multi-site plugin.

Environments

  • linux
  • java-1.8
  • Bazel

Reference

Minimum Configuration

  [amqp]
    uri = amqp://localhost
  [exchange]
    name = exchange-for-gerrit-queue
  [message]
    routingKey = com.foobar.www.gerrit
  [gerrit]
    name = foobar-gerrit
    hostname = www.foobar.com

History

  • 3.14 (Freezed)

    • New branch: stable-2.10
    • HEAD in master is permanently latest but would not be updated by author anymore.
  • 3.1

    • Fix README
  • 3.0

    • New feature: multi url support
    • Bump amqp-client to 3.5.0
    • Bump Gradle shadow plugin to 1.2.1
    • Add Gradle release plugin 2.0.2
    • Fix & improve connection handling
  • 2.0

    • The feature that configure queue/exchange/bind has been removed. Means messages are published to existing exhange only.
    • Allow event filter based on an existing user (Thanks @GLundh!)
    • Fix singletonize Properties class and fix typo (Thanks @hugares!)
    • Add API support: 2.9-2.10
    • Bumped default Gerrit API to 2.10
    • Bumped amqp-client to 3.4.4
    • Bumped Gradle to 2.3
    • Remove Buck support
  • 1.4

    • Binary release
    • Add gradle support
    • Remove maven support
  • 1.3

    • Build with Buck
    • Bumped api version to 2.8.3
  • 1.2

    • Fix repository location for gerrit-api
    • Update README
  • 1.1

    • Fix channel handling
    • Add property: monitor.failureCount
    • Update README and documents
  • 1.0

    • First release

License

The Apache Software License, Version 2.0

Copyright

Copyright (c) 2013 rinrinne a.k.a. rin_ne