我将人员记录定义为Avro IDL( person.avdl ):
@namespace("net.tzolov.avro.extend")
protocol PersonProtocol {
record Person {
string firstName;
string lastName;
}
}
我正在生成java文件,因此这个文件正在生成PersonProtocol.java和Person.java。 PersonProtocol.java是空文件,有没有办法可以排除生成这个文件......
答案 0 :(得分:5)
您无法排除此文件的生成,因为Avro IDL定义了协议(请参阅更多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架构(avsc)。