Releases: allegro/hermes
1.2.0 (24.07.2019)
Enhancements
(1060) Added support for JDK 11
(1071) Counter values summed from all zookeeper clusters
Counters published, delivered, discarded and volume are kept in zookeeper. Thanks to this their values aren't reset after Hermes restart.
However, recently multi-zookeeper feature was introduced in Hermes allowing to have independent Hermes Zookeeper clusters per DC.
Because of this when a client sends a request about some topic or subscription metrics to hermes-management then it receives
metrics summed from all zookeeper clusters.
(1069) Added storage health check metrics
Since we have #1052, the next step was to introduce metrics
for storage (zookeeper clusters) health checks. They are added to MeterRegistry as storage-health-check.successful
and storage-health-check.failed
counters.
1.1.2 (08.07.2019)
Enhancements
(1061) Introduced HdrHistogram-based metrics reservoir
Introduced HdrHistogram–based implementation of reservoir in metrics. HdrHistogram-based
reservoir has much less memory footprint than exponentially decaying (previous implementation). Because of this GC in
Hermes has less job to do which leads to better Hermes performance. In the near future it will be default Hermes metrics reservoir.
To switch between implementations, use metrics.reservoir.type
option:
exponentially_decaying
- exponentially decaying reservoir (default)hdr
- HdrHistogram–based reservoir
1.1.1 (05.07.2019)
Enhancements
(1052) Auto switching to read only mode in hermes-management
Hermes-management verifies whether all zookeeper clusters are available.
It writes periodically a timestamp to each one of them.
When the timestamp write fails on one of the zk clusters then management switches into ReadOnly mode.
This feature is disabled by default. Enable with:
management:
health:
periodSeconds: 30
enabled: true
1.1.0 (02.07.2019)
Enhancements
(1033) Zookeeper multi datacenter
With the multi Zookeeper clusters, it's possible to increase Hermes isolation between data-centres.
In the end this change increase high-availability of Hermes.
Changes are only in hermes-management module which from now on can operate on multiple Zookeeper clusters.
To match Kafka clusters with Zookeeper clusters we have an additional field in a hermes-config called datacenter
.
This field allows you to tell Hermes which Zookeeper cluster belongs to which Kafka cluster.
When there is only one Zookeeper cluster then it will be used for every Kafka cluster.
If you're migrating from previous version you need to add storage.clusters
field in hermes-config and move storage.connectionString
inside it (datacenter
field is irrelevant when you have only 1 Zookeeper cluster).
Example:
kafka:
clusters:
-
datacenter: dc1
clusterName: kafka_primary
connectionString: kafka-zookeeper:2181/clusters/dc1
-
datacenter: dc2
clusterName: kafka_secondary
connectionString: kafka-zookeeper:2181/clusters/dc2
storage:
pathPrefix: /run/hermes
clusters:
-
datacenter: dc
clusterName: zk
connectionString: zookeeper:2181
1.0.7 (01.07.2019)
Bugfixes
(1053) Maximum possible offset to be committed for partition
1.0.6 (28.06.2019)
1.0.5 (25.06.2019)
1.0.4 (17.06.2019)
1.0.3 (10.06.2019)
Enhancements
(1032) Fixing MPSC queue's drain
method to return all items
1.0.2 (06.06.2019)
Enhancements
(1031) Added logging related to offsets committing
(1025) ReadOnly mode for Management
This feature allows to manually switch Hermes Management to ReadOnly mode.
During maintenance mode this protects Hermes from any unexpected changes.
Switch is done at runtime via /mode
admin endpoint.