0

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

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

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

  1. 发送到服务器的字(不清楚是 JSON 还是 TCP)

  2. 红色这个词进入服务器,服务器从 mysql 数据库中提取所有以红色为颜色的行(这可能是 ~5000 个结果)。备用步骤 2(也许 TCP 在这里应该更有意义):有一个以单词 red 作为键构建的哈希图,值是指向带有单词 red 的所有对象的数组的指针(我认为这将是一个更快的外观时间)。

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

  4. 手机解析等...

在用户完成查询之前,我可能希望在服务器上保持数组处于活动状态(因为他们可以继续过滤结果)。

基于这个例子,我应该看什么架构?

任何不同的方式都受到高度赞赏。

谢谢

4

1 回答 1

1

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

  1. 您的服务是无状态的。
  2. 如果您使用 TCP,您将无法扩展您的服务(因为每个请求都将被定向到建立 TCP 连接的服务器),这与您的服务是无状态的有关。在 HTTP 中,您只需在负载均衡器后面添加更多服务器
  3. 对于 TCP,您需要说明一些可能由于防火墙等原因而被阻止的端口 - 您可以使用端口 80/8080,但我认为这不是一个好习惯
  4. 如果您的服务更像是建议更改为他的话中的使用类型,您可能想要使用 TCP/HTTP Socket
  5. TCP 用于更长期的连接——比如每隔 X 秒报告一次系统状态的安全系统——事实并非如此
于 2013-06-03T03:58:20.130 回答