Node Architecture
Understand how GeoServer nodes process, route, and scale geospatial workloads across distributed environments.
Last updated: Nov 14, 2024 • v3.2.1Overview
In GeoServer's distributed architecture, a Node represents an independent computational unit responsible for handling specific geospatial operations. Nodes communicate via a secure gossip protocol and can be dynamically provisioned to handle spikes in rendering requests, data ingestion, or spatial analytics.
Node Types
GeoServer supports four primary node profiles, each optimized for distinct workloads:
| Type | Primary Role | Typical Scale | Protocol |
|---|---|---|---|
compute |
Vector rendering, spatial queries, geoprocessing | 4–16 vCPUs | gRPC / HTTP/2 |
edge |
Request routing, JWT validation, rate limiting | 2–4 vCPUs | HTTP/3 / WebSocket |
storage |
Tile caching, raster indexing, backup coordination | NVMe optimized | S3 / POSIX |
api |
REST/GraphQL gateway, schema management | 4–8 vCPUs | REST / GraphQL |
Configuration
Nodes are configured via geoserver.yaml or environment variables. Below is a minimal example for a compute node:
# Node identity & cluster membership
node:
id: "compute-us-east-01"
type: "compute"
cluster: "prod-atlantic"
region: "us-east-1"
# Resource limits & thread pools
resources:
max-threads: 16
memory-limit: "8Gi"
geo-cpu-priority: 90
# Spatial processing defaults
processing:
default-crs: "EPSG:4326"
tile-size: 256
cache-ttl: "3600s"
vector-batch: 10000
# Network & health
network:
listen: "0.0.0.0:8080"
gossip-port: 45000
health-interval: "15s"
API Reference
The Node Management API allows programmatic scaling, health inspection, and graceful shutdown. All endpoints require Bearer authentication with cluster admin privileges.
| Method | Endpoint | Description | Status |
|---|---|---|---|
GET |
/api/v3/nodes |
List active nodes with metadata & load metrics | Stable |
POST |
/api/v3/nodes/{id}/scale |
Trigger horizontal scaling or resource rebalance | Stable |
GET |
/api/v3/nodes/{id}/health |
Deep health check: disk, memory, spatial index, network | Stable |
DELETE |
/api/v3/nodes/{id}/drain |
Gracefully drain connections before shutdown | Beta |
Health & Monitoring
Nodes expose a Prometheus-compatible metrics endpoint at /metrics on the management port. Key metrics include:
geoserver_node_requests_total– Total routed requestsgeoserver_spatial_query_duration_ms– P95 query latencygeoserver_tile_cache_hit_ratio– Cache efficiencygeoserver_gossip_neighbors– Cluster topology health
health-interval ≤ 30s.
Next Steps
Now that you understand how nodes operate, you can configure your cluster topology or dive into the routing layer.
📖 Cluster Management Guide • ⚙️ YAML Configuration Reference • 🔌 WebSocket API Docs