feedbackcontrol4j Java library
Introduction
feedbackcontrol4j is a small, standalone java library.
Implement feedback control in your applications.Main entities are Controller, Controllable, Sensor, Filter, ControlLoop, …
For further reading I can recommend Feeback Control for computer Systems from Philipp K. Janert.
Examples
See executable documentation in src/test/java for examples.
Use cases
-
"self adaptive" behaviour of your application instead of "classic", manual configuration
-
number of workers / threads / vm’s / …
-
size of cache
-
number of database connections
-
number of "hot spares"
-
-
implementing "flow control" between producer and consumer
-
manage CPU load
-
…
Requirements
To use this library you need
-
Java 8 or later
Installation
Usage in Gradle, Maven, …
Gradle based build
Add the following dependency in your gradle build file:
repositories {
mavenCentral()
}
dependencies {
compile 'ch.petikoch.libs:feedbackcontrol4j:x.y.z' // replace x.y.z with the real version
// or "latest" release, for the braves:
//compile 'ch.petikoch.libs:feedbackcontrol4j:+'
}
Maven based build
Add jtwfg as dependency to your pom.xml:
<dependency>
<groupId>ch.petikoch.libs</groupId>
<artifactId>feedbackcontrol4j</artifactId>
<version>x.y.z</version> <!-- replace x.y.z with the real version -->
<!-- or latest release, for the braves
<version>RELEASE</version>
-->
</dependency>
Release notes
Support
Please use GitHub issues and pull requests for support.
How to build the project
To run a build of the feedbackcontrol4j project on your machine, clone the git repo to your local machine and start the gradle based build using the gradle wrapper from the shell/command line:
> ./gradlew build
