我正在尝试使用java实现与客户端一样的服务。我正在使用Apache thrift进行RPC调用。该服务使用键值存储。我试图在键值存储中提供服务容错以及一致性和数据复制。Apache Thrift:具有同步和异步方法的服务器,有可能吗?
对于例如:假设在同一时间,有id为运行10台服务器 S1,S2,S3等,以及一个客户端调用放(键,值)对S1,S1现在保存 这个值和通话在所有其余服务器 上放置一个RPC(键值)用于数据复制。我希望服务器方法保存并将 成功返回给客户端,并在其余9台服务器上启动带有异步调用的线程,以便 复制期间不会阻止客户端。
自动生成的代码有Iface和AsyncIface,我目前在ServerHandler类中实现了Iface。
我的目标是向客户端公开一个后端服务器,并在客户端和服务器之间进行正常(阻塞)调用,并在服务器之间进行异步调用。将一次运行多个客户端 - 服务器对。
据我所知,数据复制模型很粗糙,但我试图学习分布式系统。
有人可以帮我一个例子,我怎么能做到这一点。
而且,如果你认为我的设计是有缺陷的,也有在 更好的方法,我可以使用Apache节俭请不要 点出实现数据复制。
谢谢。
http://stackoverflow.com/questions/18911972/how-to-handle-requests-using-different-thread-pools-in-thrift看来此人有做了同样的事情,但我不知道如何 – user3427096
Multiplex是不同的。它允许在同一传输栈上运行多个服务。这可能不是你正在寻找这个问题。但是,如果你想结合公共服务和内部通信服务,但是(a)你不会被强迫这样做,并且(b)你可能想要为公共和内部服务使用不同的协议/传输。 – JensG