Skip to content

A HiveMQ Cluster Discovery Plugin for cluster node discovery via etcd. Useful for elastic deployments in Kubernetes and DC/OS

License

Notifications You must be signed in to change notification settings

MaibornWolff/hivemq-etcd-cluster-discovery-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Etcd Cluster Discovery Extension

Extension Type: Integration

Version: 0.1

License: Apache License 2.0

Purpose

This HiveMQ extension allows your HiveMQ cluster nodes to discover each other dynamically by regularly exchanging their information via etcd.

HiveMQ instances are added at runtime as soon as they become available by placing their information, on how to connect to them, to the configured key. The extension will regularly check the configured etcd key for files from other HiveMQ nodes. Additionally every broker updates its own entry on a regular basis to prevent the entry from expiring.

Installation

  • Download the extension from GitHub’s release page.

  • Copy the content of the zip file to the extensions folder of your HiveMQ nodes.

  • Modify the etcdDiscovery.properties file for your needs or set environment variables

  • Change the discovery mechanism of HiveMQ to extension.

Configuration

The information each node writes into etcd consists of an ip-address and a port. The ip-address and port are taken from the external-address and external-port which is configured in the cluster transport (config.xml). If they are not set, the bind-address and bind-port will be used.

The etcdDiscovery.properties can be reloaded during runtime.

Configuration from etcdDiscovery.properties will always take precedent over environment variables.

General Configuration

Config name

Environment

Required

Description

key

HIVEMQ_ETCD_KEY

Key to store discovery entries at

etcd-endpoint

HIVEMQ_ETCD_ENDPOINT

x

The region in which this S3 bucket resides. (List of regions: {s3_regions}[AWS documentation^])

etcd-port

HIVEMQ_ETCD_PORT

etcd port to connect at

expiration

HIVEMQ_ETCD_EXPIRATION

Time in seconds after which an entry in etcd is considered expired

update-interval

HIVEMQ_ETCD_UPDATE_INTERVAL

Time in seconds after which an entry in etcd is refreshed (Must be smaller than file-expiration)

use-tls

HIVEMQ_ETCD_USE_TLS

Use TLS for connection to etcd

ca-path

HIVEMQ_ETCD_CA_PATH

Certificate authority to use for validating tls connection to etcd - if not set, system certificates will be used

Default Configuration
key=/hivemq/discovery
etcd-endpoint=
etcd-port=2379
expiration=360
update-interval=180
use-tls=false
ca-path=

About

A HiveMQ Cluster Discovery Plugin for cluster node discovery via etcd. Useful for elastic deployments in Kubernetes and DC/OS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages