# yaml
components_manager:
task_processors: # Task processor is an executor for coroutine tasks
main-task-processor: # Make a task processor for CPU-bound coroutine tasks.
worker_threads: 4 # Process tasks in 4 threads.
fs-task-processor: # Make a separate task processor for filesystem bound tasks.
worker_threads: 4
monitor-task-processor: # Make a separate task processor for administrative tasks.
worker_threads: 2
thread_name: mon-worker
default_task_processor: main-task-processor # Task processor in which components start.
components: # Configuring components that were registered via component_list
logging:
fs-task-processor: fs-task-processor
loggers:
default:
file_path: '@stderr'
level: debug
overflow_behavior: discard # Drop logs if the system is too busy to write them down.
# /// [TCP component]
# yaml
tcp-echo:
task_processor: main-task-processor # Run socket accepts on CPU bound task processor
sockets_task_processor: main-task-processor # Run ProcessSocket() for each new socket on CPU bound task processor
port: 8181
# /// [TCP component]
# /// [HTTP and stats]
# yaml
server:
listener:
port: 8182 # ...to listen on this port and...
task_processor: monitor-task-processor # ...process incoming requests on this task processor.
handler-server-monitor:
path: /service/monitor
method: GET
task_processor: monitor-task-processor
monitor-handler: false
# /// [HTTP and stats]
# Testuite stuff
testsuite-support:
tests-control:
path: /tests/{action}
method: POST
task_processor: main-task-processor
http-client:
fs-task-processor: fs-task-processor
dns-client: # Asynchronous DNS component
fs-task-processor: fs-task-processor