Kuyruk derinliği, geri basınç ve bir ajan çevrimdışı kaldığında ne olduğu

Bir aracının bütün amacı orada olmayan biri için mesaj tutmaktır. Dolayısıyla "kuyruk boş değil" bir problem değildir: ürünün çalışmasıdır. Önemli olan sorular şunlar: ne kadar süre tutacak, bir mesaj ne kadar büyük olabilir ve o sınırlara ulaşıldığında ne olur.

İki sınır ve varsayılanları

Sınır Varsayılan Neyi yönetir
ENVELOPE_MAX_BYTES 1 MiB (1,048,576) Aracının kabul edeceği en büyük tek zarf
RETENTION_DAYS 14 gün Kuyruktaki bir mesajın kaldırılmaya uygun hâle gelmeden önce ne kadar tutulduğu

Bunlar sevk edilen varsayılanlardır ve bir dağıtım onları yapılandırabilir. Onları bir hizmet düzeyi garantisi olarak değil politikanın biçimi olarak okuyun; relay betadır ve hizmet düzeyi anlaşması sunmaz.

Boyut sınırı bir sıkıntı değil bir tasarım kısıtıdır

1 MiB'lik bir zarf üst sınırı, bir aracının dosya aktarım hizmeti olmadığı anlamına gelir. DIDComm ekleri yük taşıyabilir ve ayartı, büyük bir belgeyi onu tarif eden mesajla aynı kanaldan yönlendirmektir.

Daha iyi örüntü, web'in zaten kullandığıdır: bir referans içeren küçük bir mesaj gönderin ve yığını bant dışına taşıyın. Bu, kuyruk davranışını öngörülebilir tutar ve bir aracının görebildikleri ve göremedikleri açısından belirtmeye değer biçimde, zarf boyutlarının olması gerekenden daha gürültülü bir parmak izine dönüşmesini engeller.

Saklama sınırı, "çevrimdışı"nın bedava olmaktan çıktığı yer

On dört gün, günlük uyanan bir ajan için cömert ve terk edilmiş bir ajan için anlamsızdır. Saklama penceresinden sonra kuyruktaki bir mesaj kaldırılmaya uygun hâle gelir ve pratik sonuç açıktır: yeterince uzun çevrimdışı kalan bir ajan mesaj kaybeder ve gönderene söylenmez. DIDComm'un, olmayan bir alıcıyı süresiz olarak atlatan bir teslimat garantisi yoktur; hiçbir aracı sınırsız depolama olmadan böyle bir garanti sunamaz.

Ajanınız haftalarca çevrimdışı olabilecekse buna göre tasarlayın: yeniden bağlanmada bir yeniden eşitleme adımı, kuyruğun her şeyi tuttuğunu varsaymaktan iyidir.

Geri basınç ve geri basınca benzeyen arıza

Gerçek geri basınç, bir aracının tutamayacağı işi geri çevirmesidir. Büyüyen bir kuyruğun daha yaygın sebebi aracı değildir: mesajları toplayıp hiç onaylamayan bir ajandır.

Pickup 3.0 altında aracı bir mesajı ancak ajan alındığını teyit ettiğinde siler. Onay yoksa silme de yok. Belirtiler:

  • aynı mesajlar her alımda sonsuza dek yeniden teslim edilir, ve
  • bir sınır durdurana kadar kuyruk sınırsız büyür.

Mesajı aldığınızda değil kalıcı olarak sakladıktan sonra onaylayın, bkz. Pickup Protocol 3.0. Onaylayıp sonra çökmek mesajı kalıcı olarak kaybettirir, çünkü aracı kendi kopyasını doğru biçimde silmiştir.

Bir işletmecinin görebildikleri

Alıcı başına kuyruk derinliği, mesaj yaşları, teslimat ve arıza olayları; hepsi üstveri, hiçbir zaman içerik değil. Teslimat başarılı olmadığında bir delivery.failed olayı üretilir, dolayısıyla arızalar değişmeyen bir sayıdan çıkarsanmak yerine gözlenebilir. Bkz. web kancaları ve teslimat kayıtları ve işletmeci konsolunu okumak.

Açık konsol önizlemesi örnek veri gösterir ve bunu söyler. Orada görünen herhangi bir kuyruk rakamı örnekleyicidir ve bir ölçüt olarak anılmamalıdır.

Pratik kurallar

  1. Düzgün onaylayın. Kuyruk büyümesinin çoğunu bu düzeltir.
  2. Zarfları küçük tutun; yığını bant dışına taşıyın.
  3. Kuyruğun arşiv olmadığını varsayın. On dört gün bir tampon, depolama değil.
  4. Yeniden bağlanmada uzlaştırın, uzun yokluklar bekleniyorsa.

Relay, Coordinate Mediation 2.0 ve Pickup 3.0 uygular; bağımsız bir DIDComm uygunluk paketi çalıştırılmamıştır, dolayısıyla iddia "uygular"dır, "uygundur" değil.

Okumaya devam edin

Kuyruk derinliği, geri basınç ve bir ajan çevrimdışı kaldığında ne olduğu · Solidus