我在Zookeeper上构建了一个服务发现层,用于在分布式环境中查找Thrift服务.我正在寻找在生产环境中运行这些服务的最佳方法.
目前,它是通过打包部署到Tomcat的战争来完成的.在servlet实例化期间,将创建Spring ApplicationContext,从而创建TThreadPoolServerTomcat内部.
我不喜欢这个,原因有两个:
在试图找到解决这个问题的最佳策略的过程中,我想出了几个选择:
有没有人建议他们以前如何处理托管分布式服务器.我最好只在Tomcat中使用HTTP吗?
我已经尝试使用Tomcat作为Thrift服务器的主机,并发现它没有带来任何额外的价值:在这种情况下,servlet容器的所有功能(请求路由等)都不是必需的.另一方面,Tomcat增加了复杂性和移动部件(即,它很难解决PermGen问题).
使用Thrift over HTTP会对性能产生重大影响,尤其是在具有大量客户端连接的高负载情况下.
所以我最终得到了在Supervisor守护进程(http://supervisord.org/)下运行的独立Thrift服务.它使分布式部署的管理非常方便.当需要通过HTTP公开Thrift API时(例如,对于JS客户端),我们使用在vert.x(http://vertx.io/)中实现的精简异步代理.
| 归档时间: |
|
| 查看次数: |
2251 次 |
| 最近记录: |