Locating The Stream Manager Application
The Stream Manager application comes packaged with your Red5 Pro distribution. You can locate streammanager in the webapps directory of your Red5 Pro installation directory: {red5prohome}/webapps/streammanager
Configurable files can be located inside the WEB-INF folder:{RED5_HOME}/webapps/streammanager/WEB-INF
NOTE:Any changes made to Stream Manager configuration files will require restarting the Red5 Pro server service.
Stream Manager Configurable Properties
red5-web.properties Configuration File
Properties given below can be configured in the Stream Manager configuration file red5-web.properties located at:{streammanager}/WEB-INF/classes/red5-web.properties
.
### DATABASE CONFIGURATION SECTION
config.dbHost={host}
config.dbPort=3306
config.dbUser={username}
config.dbPass={password}
config.dbHost
Configures the database host IP Address for RDS access. This property is required for the proper functioning of the Stream Manager’s database operations.
config.dbPort
Configures the database port for RDS access. This property is required for the proper functioning of the Stream Manager’s database operations. The default value for this property is 3306
since MySQL servers are configured to run on 3306
.
config.dbUser
Configures the database username for RDS access. This property is required for the proper functioning of the Stream Manager’s database operations. This must correspond to your database account access credentials.
config.dbPass
Configures the database password for RDS access. This property is required for the proper functioning of the Stream Manager’s database operations. This must correspond to your database account access credentials.
### NODE CONTROLLER CONFIGURATION SECTION
instancecontroller.newNodePingTimeThreshold=150000
instancecontroller.replaceDeadClusters=true
instancecontroller.deleteDeadGroupNodesOnCleanUp=true
instancecontroller.instanceNamePrefix=node
instancecontroller.nodeGroupStateToleranceTime=180000
instancecontroller.nodeStateToleranceTime=180000
instancecontroller.cloudCleanupInterval=180000
instancecontroller.blackListCleanUpTime=600000
instancecontroller.pathMonitorInterval=30000
instancecontroller.minimumNodeFreeMemory=50
instancecontroller.newNodePingTimeThreshold
Configures the maximum expected ping time of a newly launched Red5 Pro instance. This value is configured in milliseconds. This time takes into account the time required for instance startup and Red5 service boot up. New nodes that are unable to ping the stream manager within the expected time (newNodePingTimeThreshold
) are assumed to be out of service or dead nodes.
instancecontroller.replaceDeadClusters
Configures whether to replace a dead Node Group with a new one or not. A Node Group is considered dead by the Stream Manager if its origin hasn’t pinged Stream Manager for a long time
- If this property is set to
true
, Stream Manager replaces a dead Node Group with a new one with the same group configuration. - Setting this property to
false
ensures that dead clusters are cleaned up from the system without any replacement.
instancecontroller.deleteDeadGroupNodesOnCleanUp
Configures whether termination of nodes belonging to a dead Node Group implies permanently deleting the instances on the cloud platform or merely stopping them. A node group is considered dead by Stream Manager if its origin hasn’t pinged Stream Manager for a long time
- If this property is set to true, Stream Manager ensures that instances of the dead Node Group are permanently deleted from the cloud platform.
- Setting this property to false means that cloud instances of a dead Node Group will be stopped and not permanently deleted from the cloud platform.
instancecontroller.instanceNamePrefix
Configures the name that will pre-pend any automatically created nodes. The stream manager uses this to search for and remove any nodes that have been stopped or are not communicating with the Stream Manager and need to be removed and/or replaced. If you are hosting multiple autoscaling environments within a hosting platform (a single Google Compute Engine Project for example), it is critical that this name be unique across solutions because if a Stream Manager detects a host with the correct naming prefix that is not in its database, it will shut down that node.
instancecontroller.nodeGroupStateToleranceTime
Configures the net time (in milliseconds) to wait before declaring a node group as stranded. A stranded node group is commonly a group that is in a TERMINATING
state for longer than instancecontroller.nodeGroupStateToleranceTime
milliseconds.
instancecontroller.nodeStateToleranceTime
Configures the net time (in milliseconds) to wait before declaring a node as stranded. A stranded node is commonly a node that is in a state other than INSERVICE
state for longer than instancecontroller.nodeStateToleranceTime
milliseconds.
instancecontroller.cloudCleanupInterval
Configures the net time (in milliseconds) to run the CloudSweeper
job. This is a process that checks for nodes running on a cloud platform spawned from the current stream manager but not registered in the database.
instancecontroller.blackListToleranceTime
Configures the net time (in milliseconds) to tolerate a CloudSweeper
detected unwanted instance in a temporary blacklist buffer before it is terminated.
instancecontroller.blackListCleanUpTime
Configures the net time (in milliseconds) to clean up CloudSweeper
blacklist. Blacklist cleanup accounts for any instance that was detected once but never detected henceforth. This may happen if a user manually deletes the instance on the cloud.
instancecontroller.pathMonitorInterval
Time interval (in milliseconds) for path monitor cron. The path monitor cron runs as a part of dynamic clustering to check cluster paths between nodes periodically and attempts to fix broken paths. The default value is set to 30 seconds.
instancecontroller.minimumNodeFreeMemory
Minimum free memory (in MB) allowed on a node for it to be considered usable. If the free memory drops below this value traffic will not be forwarded to that node.