Overview
main.yml
file is located in $JLUPIN_HOME/platform/start/configuration
(or %JLUPIN_HOME%\platform\start\configuration
) directory and it contains general configuration that controls all function of Main Server.
main.yml parameters
The main configuration file consists of the following sections:
Section 'ZONE'
The appropriate part of the configuration file:
ZONE:
name: default
[...]
Description:
Parameter | Description |
---|---|
name | The name of the zone, to which JLupin Node belongs to. This parameter is managed only by JLupin Control Center. |
The idea of zone is described in this chapters.
Section 'MAIN_SERVER'
The appropriate part of the configuration file:
[...]
MAIN_SERVER:
name: NODE_1
location: DC1
[...]
Description:
Parameter | Description |
---|---|
name | The name of jBrick - a node identifier used by built-in load balancers and by JLupin Control Center to manage nodes in zones. |
location | The physical location of jBrick (in which DC is operating). It is used for deployment strategies in JLupin Control Center |
Section 'SERVERS'
This section contains infrastructural definitions of an interface (logical server). The detailed description is provided in chapter about Automatic interfaces.
Section 'ENTRY_POINT'
This section contains the logical definitions of an interface (entry point). The detailed description is provided in chapter about Automatic interfaces.
Section 'INITIALIZING_LOGGER'
This section contains configuration of main server logger.
The appropriate part of the configuration file:
[...]
INITIALIZING_LOGGER:
#directoryPath: 'c:/server/alternative_path/logs'
fileName: 'main_server_initialize'
fileExtension: 'log'
fileSizeInMB: 10
maxFiles: 10
[...]
Description:
Parameter | Description |
---|---|
fileName | The prefix main server log file. |
fileExtension | the extension of main server log file. |
fileSizeInMB | The maximum log file size, expressed in MB. |
maxFiles | The maximum number of files. If the limit is exceeded, the first file is used again. |
Section 'PROCESS_MANAGER' and 'TECHNICAL_PROCESS_MANAGER'
This section contains the logical definitions of an interface (entry point). The detailed description is provided in chapter about Process managers.
Section 'EVENT_LOG_MANAGER'
Event log manager handles internal events regarding JLupin Platform components and managed microservices. For example, if a microservice disappears the process manager will recover this microservice while putting appropriate message to event log about taken actions. Event log can accessed though different tools:
- JLupin Local Console (see
events list
command) - HTTP INFORMATION PORT (see
/getEventLog
URI)
The appropriate part of the configuration file:
[...]
EVENT_LOG_MANAGER:
howOftenCheckingExpireTimeInMillis: 20000
logExpireTimeInMillis: 120000
maximumSizeInMegabytes: 5
[...]
Description:
Parameter | Description |
---|---|
howOftenCheckingExpireTimeInMillis | How often (the period is expressed in milliseconds) event log manager checks the event log against expired events that should be removed. |
logExpireTimeInMillis | The expiration time of events, expressed in milliseconds. |
maximumSizeInMegabytes | The maximum size od event log , expressed in MB. If it is exceeded the event log is flushed immediately. |
Section 'MONITORING_MANAGER'
Monitoring manager is responsible for collecting monitoring data from enviroment and provide them do access channels:
- JMX interface
- HTTP INFORMATION PORT
- JLupin Local Console
The appropriate part of the configuration file:
[...]
MONITORING_MANAGER:
howOftenRefreshAllEnvironmentStateInMillis: 10000
isJMXEnable: true
[...]
Description:
Parameter | Description |
---|---|
howOftenRefreshAllEnvironmentStateInMillis | How often (the period is expressed in milliseconds) monitoring manager collects data from the environment. |
isJMXEnable | The switch that determines is JMX service is enabled. |
Section 'LOCK_MANAGER'
The lock manager supports concurrency in accessing individual components of the JLupin node. For example, after microservice restart is initialized no other commands can be performed on that microservice.
The appropriate part of the configuration file:
[...]
LOCK_MANAGER:
isTurnedOn: true
[...]
Description:
Parameter | Description |
---|---|
isTurnedOn | The switch that determines of lock manager is turned on. We strongly recommend to keep it running in the production environments. |
Section 'MICROSERVICES_LOAD_BALANCER_SETTINGS' and 'NODE_PEERS'
This section defines the behavior of built-in load balancer. The detailed description is provided in chapter about Load Balancer.
Section 'SERIALIZER'
In this section you can define which serializer is used for serializing messages being exchanges during microservice to microservice communication.
The appropriate part of the configuration file:
[...]
SERIALIZER:
producerClassName: 'com.jlupin.impl.functional.supplier.serializer.JLupinFSTSerializerSupplierImpl'
[...]
Description:
Parameter | Description |
---|---|
producerClassName | Serializer class name. The fefault serializer is FST, if you would like to change it for example to standard one, incl. in JAVA, please change the value to com.jlupin.impl.functional.supplier.serializer.JLupinJAVASerializerSupplierImpl . |
Section 'PROPERTIES'
The set of parameters that controls Main Server operations.
The appropriate part of the configuration file:
[...]
PROPERTIES:
# 52428800 bytes = 50MB
maxRequestSizeInBytes: 52428800
maxResponseSizeInBytesDuringMicroserviceStart: 52428800
binaryProtocolBufferSizeInBytes: 8192
isUpgradeAutomaticallyMicroservicesConfiguration: true
isUpgradeAutomaticallyTechnicalProcessesConfiguration: true
platformVersion: '1.6.0.0'
Description:
Parameter | Description |
---|---|
maxRequestSizeInBytes | The maximum size of a request, expressed in bytes. |
maxResponseSizeInBytesDuringMicroserviceStart | The maximum size of an output stream, that Main Sever can read properly during startup procedure of a microservice (including technical) |
binaryProtocolBufferSizeInBytes | The size of buffer for JLupin Protocol, expressed in bytes. |
isUpgradeAutomaticallyMicroservicesConfiguration | The switch specifying whether automation microservice configuration files update should be performed during platform startup. |
isUpgradeAutomaticallyTechnicalProcessesConfiguration | The switch specifying whether automation technical microservice configuration files update should be performed during platform startup. |
platformVersion | Version of Main Server configuration file (main.yml). If it's lower than binaries - automated upgrade of main.yml is performed during startup. |
Default configuration file
ZONE:
name: default
MAIN_SERVER:
name: NODE_1
location: DC1
SERVERS:
JLRMC_BINARY: #JLupin Remote Method Call Fast Protocol
port: 9090
readTimeout: 480000
waitForFinishExecuteAllRequests: true
waitToShutdownThreadsOnStop: 60000
backlog: 256
receiveBufferSize: 256
isReuseAddress: false
threadPoolSize: 16
logPeriodicOnDebug: true
destroyThreadOnTimeout: false
threadExecutingTimeOut: 240000
isStartOnMainServerInitialize: true
entryPoint: 'JLRMC_BINARY'
SSL:
isSSL: false
isTwoWaySSLAuthentication: false
X.509.Format:
isActive: true
#search in path $SERVER_HOME$/server-resources/ssl/server
serverX509CertificateWithRSAPublicKeyFileName: 'serverX509Certificate.crt'
serverPKCS8EncodedWithRSAPrivateKeyFileName: 'serverPrivateKey.pk'
#clientsX509CertificateWithRSAPublicKeyDirectoryPath: 'C:/server/server-resources/ssl/client'
ELASTIC_HTTP:
port: 8082
readTimeout: 480000
waitForFinishExecuteAllRequests: true
waitToShutdownThreadsOnStop: 60000
backlog: 0
receiveBufferSize: 0
isReuseAddress: false
threadPoolSize: 16
logPeriodicOnDebug: true
destroyThreadOnTimeout: false
threadExecutingTimeOut: 240000
isStartOnMainServerInitialize: true
entryPoint: 'ELASTIC_HTTP'
SSL:
isSSL: false
isTwoWaySSLAuthentication: false
X.509.Format:
isActive: true
#search in path $SERVER_HOME$/server-resources/ssl/server
serverX509CertificateWithRSAPublicKeyFileName: 'serverX509Certificate.crt'
serverPKCS8EncodedWithRSAPrivateKeyFileName: 'serverPrivateKey.pk'
#clientsX509CertificateWithRSAPublicKeyDirectoryPath: 'C:/server/server-resources/ssl/client'
QUEUE_BINARY:
port: 9095
readTimeout: 480000
waitForFinishExecuteAllRequests: true
waitToShutdownThreadsOnStop: 60000
backlog: 256
receiveBufferSize: 256
isReuseAddress: false
threadPoolSize: 16
logPeriodicOnDebug: true
destroyThreadOnTimeout: false
threadExecutingTimeOut: 240000
isStartOnMainServerInitialize: true
entryPoint: 'QUEUE_BINARY'
SSL:
isSSL: false
isTwoWaySSLAuthentication: false
X.509.Format:
isActive: true
#search in path $SERVER_HOME$/server-resources/ssl/server
serverX509CertificateWithRSAPublicKeyFileName: 'serverX509Certificate.crt'
serverPKCS8EncodedWithRSAPrivateKeyFileName: 'serverPrivateKey.pk'
#clientsX509CertificateWithRSAPublicKeyDirectoryPath: 'C:/server/server-resources/ssl/client'
TRANSMISSION_BINARY:
port: 9096
readTimeout: 480000
waitForFinishExecuteAllRequests: false
waitToShutdownThreadsOnStop: 60000
backlog: 0
receiveBufferSize: 0
isReuseAddress: false
threadPoolSize: 4
logPeriodicOnDebug: true
destroyThreadOnTimeout: false
threadExecutingTimeOut: 240000
isStartOnMainServerInitialize: true
entryPoint: 'TRANSMISSION_BINARY'
SSL:
isSSL: true
isTwoWaySSLAuthentication: true
X.509.Format:
isActive: true
#search in path $SERVER_HOME$/server-resources/ssl/server
serverX509CertificateWithRSAPublicKeyFileName: 'serverX509Certificate.crt'
serverPKCS8EncodedWithRSAPrivateKeyFileName: 'serverPrivateKey.pk'
#clientsX509CertificateWithRSAPublicKeyDirectoryPath: 'C:/server/server-resources/ssl/client'
INFORMATION_BINARY:
port: 9097
readTimeout: 480000
waitForFinishExecuteAllRequests: true
waitToShutdownThreadsOnStop: 60000
backlog: 0
receiveBufferSize: 0
isReuseAddress: false
threadPoolSize: 4
logPeriodicOnDebug: true
destroyThreadOnTimeout: false
threadExecutingTimeOut: 240000
isStartOnMainServerInitialize: true
entryPoint: 'INFORMATION_BINARY'
SSL:
isSSL: false
isTwoWaySSLAuthentication: false
X.509.Format:
isActive: true
#search in path $SERVER_HOME$/server-resources/ssl/server
serverX509CertificateWithRSAPublicKeyFileName: 'serverX509Certificate.crt'
serverPKCS8EncodedWithRSAPrivateKeyFileName: 'serverPrivateKey.pk'
#clientsX509CertificateWithRSAPublicKeyDirectoryPath: 'C:/server/server-resources/ssl/client'
INFORMATION_HTTP:
port: 9098
readTimeout: 480000
waitForFinishExecuteAllRequests: true
waitToShutdownThreadsOnStop: 60000
backlog: 0
receiveBufferSize: 0
isReuseAddress: false
threadPoolSize: 2
logPeriodicOnDebug: true
destroyThreadOnTimeout: false
threadExecutingTimeOut: 240000
isStartOnMainServerInitialize: true
entryPoint: 'INFORMATION_HTTP'
SSL:
isSSL: false
isTwoWaySSLAuthentication: false
X.509.Format:
isActive: true
#search in path $SERVER_HOME$/server-resources/ssl/server
serverX509CertificateWithRSAPublicKeyFileName: 'serverX509Certificate.crt'
serverPKCS8EncodedWithRSAPrivateKeyFileName: 'serverPrivateKey.pk'
#clientsX509CertificateWithRSAPublicKeyDirectoryPath: 'C:/server/server-resources/ssl/client'
ENTRY_POINTS:
JLRMC_BINARY: #JLupin Remote Method Call Fast Protocol
isSilentErrorMessageMode: false
isSilentStackTraceMode: false
logPeriodicOnDebug: false
ELASTIC_HTTP:
isSilentErrorMessageMode: false
isSilentStackTraceMode: false
keepAliveOverNetProtocolTimeInMillis: 1000
checkKeepAlive: false
logPeriodicOnDebug: false
defaultSequenceName: jacksonParamArrayJsonInOutSequence
defaultApiId: ROA
simpleCORSEnabled: true
TRANSMISSION_BINARY:
isSilentErrorMessageMode: false
isSilentStackTraceMode: false
logPeriodicOnDebug: false
INFORMATION_BINARY:
isSilentErrorMessageMode: false
isSilentStackTraceMode: false
logPeriodicOnDebug: false
INFORMATION_HTTP:
isSilentErrorMessageMode: false
isSilentStackTraceMode: false
logPeriodicOnDebug: false
keepAliveOverNetProtocolTimeInMillis: 1000
checkKeepAlive: false
simpleCORSEnabled: true
QUEUE_BINARY:
logPeriodicOnDebug: false
INITIALIZING_LOGGER:
#directoryPath: 'c:/server/alternative_path/logs'
fileName: 'main_server_initialize'
fileExtension: 'log'
fileSizeInMB: 10
maxFiles: 10
PROCESS_MANAGER:
isCheckAvailableOSMemoryOnMicroservicesStart: true
startupOrder: 1
MICROSERVICES_PORT_OFFSET:
NATIVE:
begin: 20001
end: 30000
SERVLET:
begin: 30001
end: 40000
OS_PROCESSES_KEEPER:
isCheckOSProcessAlive: true
howOftenCheckingProcessInMillis: 5000
#logPath: 'c:/server/alternative_path/process_errors'
JVM_MEMORY_ERRORS_KEEPER:
isCheckMemoryErrors: true
howOftenCheckingProcessInMillis: 5000
#heapDumpPath: c:/server/restart_log/heap_dump
#logPath: 'c:/server/alternative_path/memory_errors'
#archiveLogPath: 'c:/server/alternative_path/memory_errors_archive
#restartLogPath: c:/server/restart_log/
TECHNICAL_PROCESS_MANAGER:
isCheckOSProcessAlive: true
howOftenCheckingProcessInMillis: 5000
responseOSTimeToCheckProcessAliveInMillis: 30000
startupOrder: 2
restartDelayInMillis: 10000
EVENT_LOG_MANAGER:
howOftenCheckingExpireTimeInMillis: 20000
logExpireTimeInMillis: 120000
maximumSizeInMegabytes: 5
MONITORING_MANAGER:
howOftenRefreshAllEnvironmentStateInMillis: 10000
isJMXEnable: true
LOCK_MANAGER:
isTurnedOn: true
MICROSERVICES_LOAD_BALANCER_SETTINGS:
singleRequestRepeatsAmount: 3
howOftenCheckingMicroservicesInMillis: 5000
externalHealthCheckPeriod: 4000
externalNodePeersStartCheckDelayInMillis: 5000
EXTERNAL_CONNECTIONS:
connectionSocketTimeoutInMillis: 1000
readTimeoutInMillis: 90000
isKeepAlive: false
isOOBInline: false
isTcpNoDelay: false
isReuseAddress: false
sendBufferSize: 0
receiveBufferSize: 0
soLinger: 0
trafficClass: 0
SERIALIZER:
producerClassName: 'com.jlupin.impl.functional.supplier.serializer.JLupinFSTSerializerSupplierImpl'
PROPERTIES:
# 52428800 bytes = 50MB
maxRequestSizeInBytes: 52428800
maxResponseSizeInBytesDuringMicroserviceStart: 52428800
binaryProtocolBufferSizeInBytes: 8192
isUpgradeAutomaticallyMicroservicesConfiguration: true
isUpgradeAutomaticallyTechnicalProcessesConfiguration: true
platformVersion: '1.6.0.0'
NODE_PEERS:
NODE_1:
ip: '127.0.0.1'
jlrmcPort: 9090
queuePort: 9095
transmissionPort: 9096
informationPort: 9097