Overview
JLupin Main Server provides automatically several logical servers and associated entry points:
for data processing purposes:
-
JLRMC_BINARY - JLupin Remote Method Call, which is a binary interface for synchronous remote method invocation, it listens on 9090 port and implements TCP as a transmission layer protocol. It's the default entry point for communication between microservices and external java application servers through JLupin Client (jlupin-client-assembly.jar). It automatically uses built-in JLupin Load Balansers and is managed centrally through JLupin Control Center.
-
QUEUE_BINARY - fast queue implementation for asynchronous remote method invocation. It's a binary interface that listens on 9095 port and implements TCP as a transmission layer protocol. It allows to invoke a service in asynchronous mode through built-in load balancers and it is managed centrally through JLupin Control Center.
-
ELASTIC_HTTP - Elastic API, that allows to trigger microservices' function through HTTP protocol. 'Elastic' comes from its configurations capabilities through HTTP header parameters. This mechanism allows to invoke a service in XML or JSON data format and in SOA or REST style. It is a textual interface that listens on 8082 port and implements TCP as a transmission layer protocol.
and for management purposes:
-
TRANSMISSION_BINARY - binary entry point for management purposes like changing configuration, managing microservices (start, stop, upload, ...), getting information from the environment etc. It is usually used by management tools like JLupin Control Center. It listens on 9096 port and implements TCP as a transmission layer protocol.
-
INFORMATION_BINARY - binary interface providing information from service repository, usually used by a JLupin Client (that implements JLupin Load Balanser) to determine the proper transmission pattern in a group of jBricks.
-
INFORMATION_HTTP - textual (http) interface providing information about JLupin environment, internally used by a JLupin Edage Balancer for discovery process, externally provided to any other component in the environment (ex. orchestrator, monitoring system, testing platform).
Configuration
Configuration of automatic interfaces is a part of main config and consists of the following sections:
Section 'SERVERS'
This section contains infrastructural definitions of an interface (logical server). There are five subsections, each relates to particular interface. The name of a subsection is the name of the interface. The set of parameters for each subsection is the same.
Basic configuration
Parameter | Description |
---|---|
port | Port number, on which entry ports listens |
readTimeout | The maximum time in milliseconds that a socket is ready to handle traffic, after this timeout the another initialization is needed and a socket is unavailable for some time. If you interested in reading more about it, please refer to Oracle's official documentation. USE WITH CAUTION ! |
waitForFinishExecuteAllRequests | Graceful shutdown switch. It determines whether the main server waits to complete all requests before it stops. |
waitToShutdownThreadsOnStop | Graceful shutdown timeout. The time in milliseconds that Main Server waits to complete all requests. After this timeout the Main Servers will be terminated regardless the status of requests. |
backlog | The maximum queue length for incoming connections. If you interested in reading more about it, please refer to Oracle's official documentation. USE WITH CAUTION ! |
receiveBufferSize | The value of this parameter is used both to set the size of the internal socket receive buffer, and to set the size of the TCP receive window that is advertised to the remote peer. If you interested in reading more about it, please refer to Oracle's official documentation. USE WITH CAUTION ! |
isReuseAddress | Enabling this parameter prior to binding the socket allows the socket to be bound (through 'bind' method) even though a previous connection is in a timeout state. If you interested in reading more about it, please refer to Oracle's official documentation. USE WITH CAUTION ! |
threadPoolSize | The number of threads that is assigned to process requests on the entry point. |
logPeriodicOnDebug | The switch to ignore DEBUG log level for periodic tasks in JLupin Platform core components. |
destroyThreadOnTimeout | The switch that determines if Main Server destroys a thread after threadExecutingTimeOut is exceeded. USE WITH CAUTION ! |
threadExecutingTimeOut | The maximum time of execution by a thread (from client perspective), expressed in milliseconds. After this period of time the socket associated with the request is closed, the thread executes request to the end. |
isStartOnMainServerInitialize | The switch that determines if the logical service is started during Main Server startup procedure. |
SSL configuration
tbd.
Section 'ENTRY_POINTS'
This section contains the logical definitions of an interface (entry point). The relation between local server (section SERVERS) and entry point is set by entryPoint
parameter in the configuration of logical server.
There are some parameters that are common for all entry point (the following chapter) and for specific ones (the name of the chapter corresponds with the name of entry point).
Common parameters
These parameters are applicable for all kind of entry points.
Parameter | Description |
---|---|
logPeriodicOnDebug | The switch to ignore DEBUG log level for periodic tasks in JLupin Platform core components. |
The following lists, in the next points, are specific to particular entry point.
JLRMC entry point
Parameter | Description |
---|---|
isSilentErrorMessageMode | The parameter turns on silent error message mode, where, due to security, constraints error messages are not provided to request invokers. These messages are automatically replaced by 'unexpected error occurred during execute request, server is in silent message error mode, see logs for details'. |
isSilentStackTraceMode | The parameter turns on silent stack trace mode, where due to security constraints stack traces are not provided to request invokers (they left blank). |
ELASTIC_HTTP entry point
Parameter | Description |
---|---|
isSilentErrorMessageMode | The parameter turns on silent error message mode, where, due to security, constraints error messages are not provided to request invokers. These messages are automatically replaced by 'unexpected error occurred during execute request, server is in silent message error mode, see logs for details'. |
isSilentStackTraceMode | The parameter turns on silent stack trace mode, where due to security constraints stack traces are not provided to request invokers (they left blank). |
keepAliveOverNetProtocolTimeInMillis | The time in milliseconds that main server is waiting for socket close after response is sent. It should be increased in case of high latency in the network or its low throughput, where probably incomplete responses by client's site occurs. |
checkKeepAlive | in case of 'true', keepAliveOverNetProtocolTimeInMillis is automatically set on the basis of 'keep-alive' value in HTTP header. |
defaultSequenceName | This parameter determines which sequencer is used by default to serialize the input / output requests data. This can be change through parameters passed in the request's header. The possible options are detailed described in HTTP Elastic API chapter. |
defaultApiId | This parameter determines the default invocation mode, the way of passing input data to the service's method. This can be change through parameters passed in the request's header. The possible options are detailed described in HTTP Elastic API chapter. |
simpleCORSEnabled | This switch manages CORS support (see mode details here). The CORS should be enabled (the parameter set to 'true') when SwaggerUI is used to test the API. |
TRANSMISSION entry point
Parameter | Description |
---|---|
isSilentErrorMessageMode | The parameter turns on silent error message mode, where, due to security, constraints error messages are not provided to request invokers. These messages are automatically replaced by 'unexpected error occurred during execute request, server is in silent message error mode, see logs for details'. |
isSilentStackTraceMode | The parameter turns on silent stack trace mode, where due to security constraints stack traces are not provided to request invokers (they left blank). |
INFORMATION entry point
Parameter | Description |
---|---|
isSilentErrorMessageMode | The parameter turns on silent error message mode, where, due to security, constraints error messages are not provided to request invokers. These messages are automatically replaced by 'unexpected error occurred during execute request, server is in silent message error mode, see logs for details'. |
isSilentStackTraceMode | The parameter turns on silent stack trace mode, where due to security constraints stack traces are not provided to request invokers (they left blank). |
INFORMATION_HTTP entry point
Parameter | Description |
---|---|
isSilentErrorMessageMode | The parameter turns on silent error message mode, where, due to security, constraints error messages are not provided to request invokers. These messages are automatically replaced by 'unexpected error occurred during execute request, server is in silent message error mode, see logs for details'. |
isSilentStackTraceMode | The parameter turns on silent stack trace mode, where due to security constraints stack traces are not provided to request invokers (they left blank). |
keepAliveOverNetProtocolTimeInMillis | The time in milliseconds that main server is waiting for socket close after response is sent. It should be increased in case of high latency in the network or its low throughput, where probably incomplete responses by client's site occurs. |
checkKeepAlive | in case of 'true', keepAliveOverNetProtocolTimeInMillis is automatically set on the basis of 'keep-alive' value in HTTP header. |
simpleCORSEnabled | This switch manages CORS support (see mode details here). |
QUEUE entry point
The QUEUE entry point has the common set of parameters. Configuration of queues are provided on queueMicroservice
type microservices which run queue subsystems in the distribution architecture.
JLupin (Reactive) Queues are described in the following chapter.