Discord Sharding: Büyük Botlar Sunucularını Nasıl Böler
Sharding, büyük bir Discord botunun sunucularını, hiçbir tek bağlantının çok fazla yük taşımaması için shard adı verilen birkaç gateway bağlantısına nasıl böldüğüdür. Bir bot 2.500 sunucuya ulaştığında Discord bunu zorunlu kılar ve her sunucu her zaman tam olarak bir shard'a aittir.
Shard nedir
Bir botun Discord ile canlı bağlantısı, yani gateway, yalnızca belirli bir trafiği taşıyabilir. Belli bir noktadan sonra tek bir bağlantı, binlerce sunucudan gelen olaylara yetişemez. Discord bunu, bir botun birkaç bağlantı açmasına ve her birine hangi sunucuları yönettiğini söylemesine izin vererek çözer. Her bağlantı bir shard'dır.
Sunucular nasıl atanır
Bir sunucunun shard'ı kimliğinden gelir; bir formül, guild kimliğinin (snowflake'in zaman damgası kısmı kaydırıldıktan sonra) shard sayısına bölünmesini ve kalanın tutulmasını sağlar. Bu yüzden belirli bir sunucu, shard sayısı değişmediği sürece hep aynı shard'a düşer. Özel mesajlar her zaman shard 0'a gider.
Bot bağlanırken bir sayı çifti gönderir: kendi shard numarası ve toplam shard sayısı. Discord bundan sonra yalnızca eşleşen sunucuların olaylarını gönderir.
Ne zaman zorunlu olur
- 2.500 sunucunun altında: tek bir bağlantı yeterlidir.
- 2.500 sunucuda: Discord tek bağlantıyı reddeder ve bot shard kullanmak zorundadır.
- Büyük botlar, yükü ve belleği dağıtmak için sınırın çok öncesinde genellikle shard ekler.
Shard'lar tek bir işlemde ya da ayrı makinelerde çalışabilir. İkinci seçenek, bir shard'ın yeniden başlatılırken diğerlerinin kapanmamasını sağlar.
Sizin için ne anlama gelir
Çoğunlukla hiçbir şey. Üyeler bir fark görmez. Pratik etkisi kesintilerde görünür: bir shard çevrimdışı olursa, yalnızca o shard'daki sunucular botu kaybeder, diğerleri çalışmaya devam eder. Botunuz yalnızca sizin sunucunuzda çevrimdışı görünürken diğerleri sorunsuzsa, bu bir shard sorununun ipucudur; sizin değiştirdiğiniz bir şey değildir.
Sharding ayrıca hız sınırlarıyla da etkileşir. Aynı anda çok sayıda shard başlatmak sınırlıdır, bu yüzden büyük bir bot bunları gruplar hâlinde yeniden başlatır.
Sharding ve Noxyr
Noxyr için bir şey yapılandırmanız gerekmez. Durum ve ping sayfası botun yanıt verip vermediğini gösterir, bot çevrimdışı rehberi ise önce neyi kontrol etmeniz gerektiğini listeler. Kendi bağlantısına sahip kendi uygulamanızı çalıştırmak isterseniz, bir özel bot Noxyr'ın özelliklerini sizin adınıza çalıştırır; bu botların nasıl ayakta tutulduğunu barındırma düğümleri ve çalışma süresi makalesi açıklar.
Sık sorulan sorular
Bir bot kaç sunucudan sonra shard kullanmak zorunda?
Discord 2.500 sunucuda sharding'i zorunlu kılar. Birçok büyük bot yükü dağıtmak için daha erken shard kullanır.
Bir sunucu iki shard'da olabilir mi?
Hayır. Bir sunucu her zaman tam olarak bir shard'a aittir; bu, kimliğinden ve shard sayısından seçilir.
Sharding üyelerim için bir şeyi değiştirir mi?
Hayır. Dahili bir ayrıntıdır. Yalnızca kesintilerde önemlidir; çünkü bir shard diğerlerini etkilemeden arızalanabilir.