我们有一个使用 Thrift 与 HBase 通信的 .NET 应用程序。 Thrift 服务器配置为通过身份验证 (Kerberos)。我们有一个 key 表。
我们如何从 .NET 应用程序实现身份验证?我见过的所有示例都是用 Java 编写的。有人从 .NET 做过吗?
最佳答案
有一个使用标准thrift Protocol的RPC框架叫做“thrifty”,它和使用thrift IDL定义服务是一样的效果,即thrify可以兼容使用thrift IDL的代码,所以它是跨平台的。
你可以使用它的客户端
[ThriftStruct]
public class LogEntry
{
[ThriftConstructor]
public LogEntry([ThriftField(1)]String category, [ThriftField(2)]String message)
{
this.Category = category;
this.Message = message;
}
[ThriftField(1)]
public String Category { get; }
[ThriftField(2)]
public String Message { get; }
}
ThriftSerializer s = new ThriftSerializer(ThriftSerializer.SerializeProtocol.Binary);
byte[] s = s.Serialize<LogEntry>();
s.Deserialize<LogEntry>(s);
[ThriftService("scribe")]
public interface IScribe
{
[ThriftMethod("getMessages")]
List<LogEntry> GetMessages();
[ThriftMethod]
ResultCode Log(List<LogEntry> messages);
}
public class Scribe : IScribe
{
public List<LogEntry> GetMessages()
{
return new List<LogEntry>
{
new LogEntry { Category = "c1", Message = Guid.NewGuid().ToString() },
new LogEntry { Category = "c2", Message = Guid.NewGuid().ToString() },
new LogEntry { Category = "c3", Message = Guid.NewGuid().ToString() }
};
}
public ResultCode Log(List<LogEntry> messages)
{
return ResultCode.TRY_LATER;
}
}
关于c# - 您如何从 .NET 对 Thrift HBase 进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34304979/