Jar Files
When using the client module from any Java application built on top of Java 8 but not on Light, several modules need to be included together to perform multiple functions including HTTP/2 request, service discovery, load balance and cluster support. These jar files are tiny which only contain 2 to 5 classes. The following list includes all the related jar files from Maven Central when using client module.
For all the modules listed below, there are three configuration files that need to be externalized in order to work. There are:
- client.yml - defines client configuration and OAuth 2.0 communication. It is used by client module only.
- service.yml - balance, cluster, registry, consul and decryptor configurations are defined in this file.
- secret.yml - OAuth 2.0 client secret and certificate password etc. are defined in this file for easy secret management. All secrets can be encrypted so that no clear text can be seen in the config file.
It is the main jar file that is responsible for creating an HTTP/2 connection, sending requests and invoking client callbacks. It also handles auto-renewal of JWT tokens from the OAuth 2.0 provider and passes through the correlationId and traceabilityId.
It loads configuration files inside the module, application or externalized directory.
It is the module to handle the client side load balance. It supports three built-in strategies: Round Robin, Local First, and Consistent Hashing.
Cluster support at the client side, it uses balance module to pick up one candidate (IP and port) from a list of discovered instances.
It Provides general service discovery logic along with concrete implementations like Consul or Zookeeper.
It is a client module for Consul agent communication.
Dependency injection service that is responsible for wire-in all other modules.
It is an optional module if you want to encrypt sensitive data from the configuration files.
It is an optional module and used by decryptor for the DecryptUtil.