The Paremus Gossip Clustering (Netty) Implementation

An implementation of the Paremus Clustering API using a Gossip style infection algorithm and Netty as a communications layer

License

License

Categories

Categories

Net Netty Networking
GroupId

GroupId

com.paremus.gossip
ArtifactId

ArtifactId

com.paremus.gossip.netty
Last Version

Last Version

1.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

The Paremus Gossip Clustering (Netty) Implementation
An implementation of the Paremus Clustering API using a Gossip style infection algorithm and Netty as a communications layer
Project Organization

Project Organization

Paremus Ltd

Download com.paremus.gossip.netty

How to add to project

<!-- https://jarcasting.com/artifacts/com.paremus.gossip/com.paremus.gossip.netty/ -->
<dependency>
    <groupId>com.paremus.gossip</groupId>
    <artifactId>com.paremus.gossip.netty</artifactId>
    <version>1.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.paremus.gossip/com.paremus.gossip.netty/
implementation 'com.paremus.gossip:com.paremus.gossip.netty:1.1.0'
// https://jarcasting.com/artifacts/com.paremus.gossip/com.paremus.gossip.netty/
implementation ("com.paremus.gossip:com.paremus.gossip.netty:1.1.0")
'com.paremus.gossip:com.paremus.gossip.netty:jar:1.1.0'
<dependency org="com.paremus.gossip" name="com.paremus.gossip.netty" rev="1.1.0">
  <artifact name="com.paremus.gossip.netty" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.paremus.gossip', module='com.paremus.gossip.netty', version='1.1.0')
)
libraryDependencies += "com.paremus.gossip" % "com.paremus.gossip.netty" % "1.1.0"
[com.paremus.gossip/com.paremus.gossip.netty "1.1.0"]

Dependencies

compile (4)

Group / Artifact Type Version
org.slf4j : slf4j-api jar 1.7.25
com.paremus.core : com.paremus.license jar 1.1.0
com.paremus.core : com.paremus.netty.tls jar 1.1.0
com.paremus.cluster : com.paremus.cluster.api jar 1.1.0

provided (3)

Group / Artifact Type Version
org.osgi : osgi.core jar 7.0.0
org.osgi : osgi.cmpn jar 7.0.0
org.osgi : osgi.annotation jar 7.0.0

test (2)

Group / Artifact Type Version
junit : junit jar 4.12
org.mockito : mockito-core jar 2.18.3

Project Modules

There are no modules declared in this project.

The Paremus Gossip Repository

This repository contains components used to build large-scale clusters.

The primary (and currently only) implementation uses a "gossip style" infection algorithm. The components here provide the basic functionality for assembling a cluster, discovering new, departing, and updated cluster members, and for sharing small amounts of data (tens of bytes)

Repository Contents

This repository contains:

com.paremus.cluster.api

This project provides the Paremus Clustering API

com.paremus.gossip.netty & com.paremus.gossip.netty.test

The com.paremus.gossip.netty component is an implementation of the clustering API which implements a gossip algorithm using netty to provide an asynchronous communications layer. Security is achieved using TLS and DTLS via the com.paremus.core.netty.tls component.

The integration tests for the gossip netty component demonstrate the use of the service, and validate the ability to form gossip clusters

Note that this implementation makes use of functions from the Netty project

How to build this repository

This repository can be built using Maven 3.5.4 and Java 9. The output bundles will work with Java 8, however DTLS 1.2 support is only available within the JDK since Java 9. On Java 8 the bouncy castle DTLS provider must be used instead.

Build profiles

By default the build will run with all tests, and lenient checks on copyright headers. To enable strict copyright checking (required for deployment) then the strict-license-check profile should be used, for example

mvn -P strict-license-check clean install

If you make changes and do encounter licensing errors then the license headers can be regenerated using the generate-licenses profile

mvn -P generate-licenses process-sources
com.paremus.gossip

Paremus

Versions

Version
1.1.0