我是游戏服务器设计的新手,现在分配了一项任务来重构我们的日志服务器。我为游戏服务器和日志服务器之间的通信创建了一个类 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 实例数据发送到日志服务器,这会使日志服务器复杂化,有人有好的想法吗?