私はゲームサーバーの設計に不慣れで、ログサーバーをリファクタリングするタスクに割り当てられました。ゲームサーバーとログサーバー間の通信用にクラス Log を作成します。
class Log
{
public:
void encode(Encoder& encoder) const;
int decode(Decoder& decoder);
private:
std::string sql_cmd;
}
ゲームサーバーには、ログサーバーにログリクエストを送信するためのクラスがあります。
class LogHelper
{
public:
static void LogItemChange(const GameShare::GameItem& item, const PackageChangeDetails& pcd);
{
Log log(get_item_change_sql(item,pcd);
send_to_log_server();
}
private:
static std::string get_item_change_sql(const GameShare::GameItem& item, const PackageChangeDetails& pcd);
}
質問は:
ゲーム サーバーで SQL テキストを生成する必要がありますか? ゲーム サーバーで SQL テキストを生成すると、ゲーム サーバーのパフォーマンスに悪影響がありますか?
ゲーム サーバーで SQL テキストを生成しない場合は、ログ サーバーで SQL テキストを生成する必要があります。GameItem と PackageChangeDetails のインスタンス データをログ サーバーに送信する必要があります。ログ サーバーが複雑になります。