Java 可扩展的API服务器,带Restlet?
我们正在计划一个新的API服务器,它将主要提供JSON响应,并带有RESTful接口。我们关心的是规模和可用性。我们使用带Jetty的Restlet(或其他连接器)的方法是否正确Java 可扩展的API服务器,带Restlet?,java,scalability,restlet,Java,Scalability,Restlet,我们正在计划一个新的API服务器,它将主要提供JSON响应,并带有RESTful接口。我们关心的是规模和可用性。我们使用带Jetty的Restlet(或其他连接器)的方法是否正确 我们要问的一个问题是,在Java世界中有没有像Phusion这样的东西?例如,用于保持服务器实例正常运行的预构建解决方案?可扩展性和性能最终将更多地取决于应用程序如何处理这些请求、其算法、是否高效访问数据库、如何缓存数据、,您的问题实际上并不是关于Restlet,而是关于设计一个高可伸缩性、高可用性的站点。我们发现Re
我们要问的一个问题是,在Java世界中有没有像Phusion这样的东西?例如,用于保持服务器实例正常运行的预构建解决方案?可扩展性和性能最终将更多地取决于应用程序如何处理这些请求、其算法、是否高效访问数据库、如何缓存数据、,您的问题实际上并不是关于Restlet,而是关于设计一个高可伸缩性、高可用性的站点。我们发现Restlet在正确的系统架构下确实可以很好地扩展 一般来说,您希望:
- 运行web服务器计算机的群集,而不仅仅是一台
- 如果可能的话,确保您的应用程序未共享任何内容,即web服务器中未存储任何应用程序状态
- 使用负载平衡器将请求分散到负载最少的web服务器
- 确保JSON响应是可缓存的
- 在站点边界添加HTTP反向代理缓存(如Squid)。当站点和客户端之间的缓存预热时,大部分入站流量将由它们处理,而不是由web服务器处理
- 将客户端代码写入失败的重试请求。这样,如果web服务器死亡,下一个请求将负载平衡到一台幸存的机器
- 当然,您还想让您的站点自动化,以提供崩溃的web服务器等(这一部分最好在ServerFault.com上查询)
- 卡尔·亨德森
- ,西奥·施洛斯纳格尔
- 、莱恩·理查森和萨姆·鲁比
- ,托德·霍夫
Overstock.com运行一个高度规模化的网站,并且要做到这一点。应该在ServerFault上