我将 Person 记录定义为 Avro IDL (person.avdl):
@namespace("net.tzolov.avro.extend")
protocol PersonProtocol {
record Person {
string firstName;
string lastName;
}
}
我正在生成 java 文件,所以这个文件正在生成 PersonProtocol.java 和 Person.java。 PersonProtocol.java 是空文件,有什么方法可以排除生成此文件...
最佳答案
您不能排除此文件的生成,因为 Avro IDL 定义了一个协议(protocol)(参见更多 here)。
您的 PersonProtocol.java 是空的,因为您没有使用提供 Avro IDL 语言的 RPC。
例如:
@namespace("net.tzolov.avro.extend")
protocol PersonProtocol {
record Person {
string firstName;
string lastName;
}
string printMessage(string theMessage);
}
通过使用代码生成,您将获得定义 RPC 方法的特定行:
void printMessage(java.lang.CharSequence theMessage, org.apache.avro.ipc.Callback<java.lang.CharSequence> callback) throws java.io.IOException;
如果你只想存储数据,你应该使用 avro schema (avsc)。
关于java - AVRO avdl文件生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14735498/