シャーディングの仕組み、具体的には discord.ext.commands.AutoShardedBot について誰かが説明してくれませんか?
以下に複数の質問を記載します。
複数のサーバーで実行されますか?
そうでない場合、シャーディングすることにどのようなメリットがあるのでしょうか?
ギルドは時々シャードを切り替えることがありますか?
ボットが複数のサーバーで実行されている場合、1 つのデータベースを使用するにはどうすればよいですか?
お時間をいただきありがとうございます。
------------------------
「複数のサーバー」を使用する場合は、物理マシンのことですか、いいえ、それは
単一の Python インスタンス。
Discord では 2.5,000 ギルドを超えるシャーディングが必要です。
ギルドは (guild_id >> 22) % shard_count によってシャードに割り当てられます
ネットワーク経由でデータベースにアクセスできるようにし、必ず確保してください
強力なパスワードを使用して、それぞれから接続します。
複数のマシンに分割する必要がある場合は、shard_id と shard_count を通常の Bot インスタンスに渡すことができます。
シャーディングに関する Discord ドキュメント
2020 年 9 月 3 日 19:52 に回答
ジャワド
ジャワド
2,001
1
ゴールドバッジ 1 個
7
銀バッジ 7 個
銅バッジ 17 個
銅バッジ 17 個
5
1
1 つのホストのみで実行される場合、シャーディングにはどのような利点がありますか?
– CircuitSacul
2020 年 9 月 3 日 19:53
とても混乱しています。私の質問を明確にしておきたいのですが、ボットをシャーディングした場合、それは 1 つのホストで実行されることを意味しますか、それとも複数のホストで実行されることを意味しますか? 1 つのシャードに複数のギルドがあることはわかっていますが、ホストごとに 1 つのシャードを配置するのか、1 つのホストに複数のシャードを配置するのかがわかりません。
– CircuitSacul
セ2020 年 3 月 20 時 3 分
どちらか一方を意味するわけではありません。複数のホストにまたがってシャーディングする場合、複数のホストで実行されます。複数のホストにまたがらない方法でシャーディングを行う場合は、そうではありません。
– ジャワド
2020 年 9 月 3 日 20:08
1 つのホストに複数のシャードを配置する利点は何ですか?なぜそんなことをするのでしょうか?
– CircuitSacul
2020 年 9 月 3 日 20:10
メモリ/CPU に問題がない場合は、AutoSharded を使用してすべてを同じプロセスで実行できます。CPU には問題があるが、メモリには問題がない場合は、複数のプロセスでシャードを実行できます。メモリの問題がある場合は、複数のホスト間でシャーディングする必要があります。後の 2 つのオプションでは、プロセス間で何らかの方法で通信する必要があります。 1 つ目はそうではありません。オールインワンであり、すべてが内部で処理されるため、シャーディングについて考える必要さえありません。
– ジャワド
2020 年 9 月 3 日 20:14