我应该构建TCP服务器还是使用简单的http消息作为后端?

时间:2013-06-03 03:51:08

标签: python http ftp

我正在构建一个后端,负责处理来自网络应用和移动设备应用的请求。

我正在尝试确定TCP服务器是否适合此与常规http GET和POST请求。

用例1: 1.移动设备上的客户端在设备上执行搜索单词“red”。

  1. Word发送到服务器(不清楚JSON或TCP不明确)

  2. 单词red转到服务器,服务器从mysql db中提取所有行,其颜色为红色(这可能是〜5000个结果)。 替代步骤2(可能TCP在这里应该更有意义):有一个使用单词red作为键构建的hashmap,值为指向所有具有单词red的对象的数组的指针(我认为这将是一个更快的外观时间)。

  3. 将数据发送到手机(JSON或其他方式,不确定)。我不清楚这一步。

  4. 手机解析等......

  5. 我可能希望在用户完成查询之前将数组保持活动状态(因为他们可以继续过滤结果)。

    基于这个例子,我应该关注的架构是什么?

    非常感谢任何不同的方式。

    谢谢

1 个答案:

答案 0 :(得分:1)

在你的情况下,我会使用HTTP,因为:

  1. 您的服务是无国籍的。
  2. 如果使用TCP,您将无法扩展服务(因为每个请求都将定向到建立TCP连接的服务器),这与您的服务无状态有关。在HTTP中,您只需在load balane后面添加更多服务器
  3. 对于TCP,你需要说明一些可以阻止防火墙等的端口' - 你可以使用端口80/8080,但我不认为这是好的做法
  4. 如果你的服务更像是在他的话中改变为使用类型的建议你可能想要使用TCP / HTTP Socket
  5. TCP用于更长期的连接 - 比如每隔X秒报告系统状态的安全系统 - 事实并非如此