Fonaments del desplegament

Aquesta guia explica com desplegar els daemons de lectura i escriptura d’Asset Core en un únic node amb emmagatzematge durable.

Requisits previs

  • Binari nucli d’Asset Core (cargo build --release)
  • Directori escriure per al registre de compromisos i punts de control
  • Ports 8080 i 8081 disponibles (o alternatives)

Pas 1 - Preparar directoris

Creeu directoris per a l’estat persistent:

mkdir -p /var/lib/assetcore/{logs,checkpoints}

El registre de commits i els punts de control es desaran aquí.

Pas 2 - Configurar el daemon d’escriptura

Creeu un fitxer de configuració 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

Configuracions clau:

ConfiguracióDescripció
listenAdreça i port per vincular
commit_log.pathOn emmagatzemar el registre d’esdeveniments
flush_interval_msCada quant temps fer fsync (menor = més durable)
precheck_workersTreballadors de validació paral·lels

Pas 3 - Configurar el daemon de lectura

Creeu un fitxer de configuració read.toml o utilitzeu arguments de línia de comandes:

[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 ha de apuntar al mateix registre de confirmacions que el daemon d’escriptura.

Pas 4 - Iniciar el daemon d’escriptura

./target/release/assetcored-write --config write.toml

Verifiqueu que s’està executant:

curl http://localhost:8080/v1/health

Expected: {"status": "saludable", ...}

Pas 5 - Inicieu 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

Verifiqueu que s’està executant:

curl http://localhost:8081/v1/health

Pas 6 - Verificar de punta a punta

Envia un compromís de prova:

curl -X POST http://localhost:8080/v1/commit \
  -H "Content-Type: application/json" \
  -d '{
    "operations": [
      {"op": "CreateContainer", "args": {"container_id": 1, "kind": "Standard"}}
    ]
  }'

Llegeix-ho de nou:

curl http://localhost:8081/v1/read/container/1

Resolució de problemes

”Adreça ja en ús”

Un altre procés està utilitzant el port. O bé atureu aquest procés o canvieu l’adreça de listen.

”Permís denegat” en el registre de commits

L’usuari que executa el daemon no té accés d’escriptura al directori. Comproveu la propietat:

chown -R assetcore:assetcore /var/lib/assetcore

El daemon de lectura mostra dades antigues

Comproveu el punt d’entrada de frescor:

curl http://localhost:8081/v1/read/freshness

Si checkpoint_seq està darrere de commit_log_seq, el daemon de lectura s’està posant al dia. Monitoreu la mètrica de retard.

Recuperació de fallades

Ambdós daemons es recuperen automàticament dels seus punts de control en reiniciar. No es necessita intervenció manual.

Properes passes