thrift接口和http接口的区别
1个回答
2017-03-15 · 知道合伙人互联网行家
关注
展开全部
Thrift在0.9.1版本之前,一直只提交了对单一接口服务的支持,即一个RPC服务器(对应一个端口)支持一个服务接口的实现。
但是很多时候,我们的服务不能实现在一个接口里,一是接口里的方法越来越多,不好管理和使用;二是根据职责的单一要求,不能类型的方法,不能放在同一接口里。
在 Thrift-0.9.1之前,我们要解决上面的问题,一是通过多个RPC服务器来实现,这个方法必然导致了我们RPC服务器越来越多,管理上麻烦;二是通过其他的一些途径,如使用netty作为RPC服务器等,这个方法实现上相对麻烦一些,需要去了解netty的知识。
这些方法在这里就不再详述了。
从Thrift-0.9.1开始,thrift开始提供对多接口服务的支持,使得我们开发多接口RPC服务相对简单多了。
这里还是给出例子来说明。
首先,我们做了两个接口定义文件来定义两个接口:
namespace javacom.eli.test.service
struct Topic
{
1: i32 uid,
2: string name,
3: string content
}
service TopicService
{
void store(1: Topic topic),
Topic retrieve(1: i32 uid)
}
namespace javacom.eli.test.service
struct User
{
1: i32 uid,
2: string name,
3: string blurb
}
service UserService
{
void store1(1: User user),
User retrieve1(1: i32 uid)
}
但是很多时候,我们的服务不能实现在一个接口里,一是接口里的方法越来越多,不好管理和使用;二是根据职责的单一要求,不能类型的方法,不能放在同一接口里。
在 Thrift-0.9.1之前,我们要解决上面的问题,一是通过多个RPC服务器来实现,这个方法必然导致了我们RPC服务器越来越多,管理上麻烦;二是通过其他的一些途径,如使用netty作为RPC服务器等,这个方法实现上相对麻烦一些,需要去了解netty的知识。
这些方法在这里就不再详述了。
从Thrift-0.9.1开始,thrift开始提供对多接口服务的支持,使得我们开发多接口RPC服务相对简单多了。
这里还是给出例子来说明。
首先,我们做了两个接口定义文件来定义两个接口:
namespace javacom.eli.test.service
struct Topic
{
1: i32 uid,
2: string name,
3: string content
}
service TopicService
{
void store(1: Topic topic),
Topic retrieve(1: i32 uid)
}
namespace javacom.eli.test.service
struct User
{
1: i32 uid,
2: string name,
3: string blurb
}
service UserService
{
void store1(1: User user),
User retrieve1(1: i32 uid)
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询