我目前正致力于实施社交网络。该架构是:
- 分布式C ++ / Qt客户端 - Neo4j服务器数据库
我可以直接查询数据库,因为它有我的Qt应用程序的REST接口。我对这种方法不太满意,因为它不安全,也没有优化(缓存请求)。
我应该使用什么服务器/架构来管理来自客户端的请求?
我比Python更像Python,但速度很重要。
你认为REST足够快还是我应该使用RPC?
在最后一个场景中,这意味着我应该为数据库开发自己的服务器实现。
REST会足够快。使用它直到您可以测量并有一些真实的数据告诉您这是一个问题。
但我不会使用REST API直接处理数据库。
我将在两者之间添加管理安全性,验证和绑定,用例和错误处理,日志记录,事务等的层。
如果你在Spring中这样做,那么控制器会担心前两个以及处理后两个的服务。
是的,客户端/服务器直接与数据库相比更复杂,但是您需要以更多层和更多代码为代价购买您想要的东西(安全性等)。决定它对你的价值。
当然,速度很重要,但限制更可能由网络延迟设置而不是其他任何东西。如果客户端通过Internet访问,则意味着平均有12个路由器跃点可以访问您的应用程序。我看到公司内部网上有70毫秒的往返延迟。让它成为衡量速度的标准。
至于什么是重要的,我认为一个社交网站应该担心扩展到很多访问者。我所知道的体系结构是线程池和请求队列,每个传入请求有一个线程,或者像Netty这样的非阻塞I / O.我认为相当于Netty的Python是Twisted。