【发布时间】:2010-01-21 01:31:33
【问题描述】:
我有两个问题:
问题一:
--thrift 可以提供内部类功能吗? (接下来看我的例子)
-- 如果可以,thrift 是否可以轻松使用此类功能?
这里是 scribe 界面 (scribe/if/scribe.thrift)。但是它的message字段只能是字符串,我认为不够灵活。
#!/usr/local/bin/thrift --cpp --php
## Copyright (c) 2007-2008 Facebook
...
...
## See accompanying file LICENSE or visit the Scribe site at:
## http://developers.facebook.com/scribe/
include "fb303/if/fb303.thrift"
namespace cpp scribe.thrift
enum ResultCode
{
OK,
TRY_LATER
}
struct LogEntry
{
1: string category,
2: string message
}
service scribe extends fb303.FacebookService
{
ResultCode Log(1: list<LogEntry> messages);
}
如果我能做到以下事情那就太好了(我什至不知道 thrift 本身是否根据其文档提供了内部类功能——但协议缓冲区肯定可以)。
enum ResultCode
{
OK,
TRY_LATER
}
struct MyLogStructure {
1: string field_name;
2: string value;
}
struct LogEntry
{
1: string category,
2: MyLogStructure message
}
service scribe extends fb303.FacebookService
{
ResultCode Log(1: list<LogEntry> messages);
}
问题 2:
-- scribe 可以轻松地使用协议缓冲区作为内部数据表示吗? (无需过多修改代码)
-- 如果上述问题的答案是“否”,Google 是否开源了它的 sribe 实现?
【问题讨论】:
标签: logging protocol-buffers thrift scribe-server