Conceptos Básicos de Despliegue
Esta guía explica cómo desplegar los daemons de escritura y lectura de Asset Core en un solo nodo con almacenamiento duradero.
Requisitos Previos
- Compilar los binarios de Asset Core (
cargo build --release) - Directorio escribible para el registro de confirmaciones y puntos de control
- Puertos 8080 y 8081 disponibles (o alternativas)
Paso 1 - Preparar directorios
Cree directorios para el estado persistente:
mkdir -p /var/lib/assetcore/{logs,checkpoints}
El registro de commits y los puntos de control se almacenarán aquí.
Paso 2 - Configurar el daemon de escritura
Cree un archivo de configuración write.toml:
[server]
listen = "0.0.0.0:8080"
[commit_log]
path = "/var/lib/assetcore/logs/commit_log.log"
checkpoint_path = "/var/lib/assetcore/checkpoints/write.checkpoint.json"
flush_interval_ms = 100
[ingress]
queue_capacity = 1000
precheck_workers = 4
max_inflight_commits = 100
Configuraciones clave:
| Configuración | Descripción |
|---|---|
listen | Dirección y puerto para enlazar |
commit_log.path | Dónde almacenar el registro de eventos |
flush_interval_ms | Con qué frecuencia hacer fsync (menor = más duradero) |
precheck_workers | Trabajadores de validación paralela |
Paso 3 - Configurar el daemon de lectura
Cree un archivo de configuración read.toml o use argumentos de línea de comandos:
[server]
listen = "0.0.0.0:8081"
[tail]
commit_log = "/var/lib/assetcore/logs/commit_log.log"
checkpoint = "/var/lib/assetcore/checkpoints/read.checkpoint.json"
poll_interval_ms = 10
El daemon de lectura debe apuntar al mismo registro de confirmaciones que el daemon de escritura.
Paso 4 - Iniciar el daemon de escritura
./target/release/assetcored-write --config write.toml
Verifique que esté en funcionamiento:
curl http://localhost:8080/v1/health
Se espera: {"status": "healthy", ...}
Paso 5 - Iniciar el daemon de lectura
./target/release/assetcored-read \
--listen 0.0.0.0:8081 \
--commit_log /var/lib/assetcore/logs/commit_log.log \
--checkpoint /var/lib/assetcore/checkpoints/read.checkpoint.json
Verifique que esté en funcionamiento:
curl http://localhost:8081/v1/health
Paso 6 - Verificar de extremo a extremo
Enviar un commit de prueba:
curl -X POST http://localhost:8080/v1/commit \
-H "Content-Type: application/json" \
-d '{
"operations": [
{"op": "CreateContainer", "args": {"container_id": 1, "kind": "Standard"}}
]
}'
Lea de nuevo:
curl http://localhost:8081/v1/read/container/1
Solución de problemas
”Dirección ya en uso”
Otro proceso está utilizando el puerto. Detenga ese proceso o cambie la dirección de listen.
”Permiso denegado” en el registro de confirmaciones
El usuario que ejecuta el daemon no tiene acceso de escritura al directorio. Verifique la propiedad:
chown -R assetcore:assetcore /var/lib/assetcore
El daemon de lectura muestra datos antiguos
Verifique el punto final de frescura:
Guía adicional:
curl http://localhost:8081/v1/read/freshness
Si checkpoint_seq está detrás de commit_log_seq, el daemon de lectura está alcanzando. Monitoree la métrica de retraso.
Recuperación de fallos
Ambos daemons se recuperan automáticamente de sus puntos de control al reiniciarse. No se necesita intervención manual.
Próximos pasos
- Salud y Métricas - Monitoreo de puntos finales
- Referencia de CLI - Usando acctl para operaciones