thrift作为跨语言的RPC框架,在公司内部得到大量使用,而thrift支持注解格式与idl生成JavaBean两种方式。经过理解多wiki后,总结两者的特点如下。
对比:
注解格式的优势:1. IDE代码简洁;2. java间相互调用时,JavaBean是可以直接共享的;3. 支持java的Deprecated语法。
idl格式的优势:1. 支持跨语言;2. thrift不支持泛型、重载,在idl可以做更好的限制,如果用注解,thrift新手可能会使用泛型导致问题。
此外,两者不宜混用,否则容易造成解析失败等问题。
结论:
所以如果有跨语言要求,一定使用idl。
java内调用,两者均可,我个人推崇idl,更规范,生成的JavaBean中保证仅有RPC功能,且限制新手误用泛型等导致问题。