小编Abh*_*ith的帖子

在服务器上显示来自多个数据源的客户端上的分页数据

我们有3个产品供用户订购.

例如:

  • Itunes音乐
  • Itunes Books
  • AppleStore应用程序

鉴于:

3个微服务,根据时间戳为订单历史记录提供3个单独的分页响应.

需要:

按时间戳的降序显示所有3个来源的订单历史记录,并在用户滚动时将它们分页.即,根据时间戳和显示对来自3个来源的响应进行排序和合并.

用户可能购买了:

  1. 从所有3项服务
  2. 从任何2
  3. 从任何1
  4. 没有

此外,购买的时间表也可能有所偏差.例如:用户仅用Itunes音乐购买了10首歌曲.

我能想到的方法:

1.仅对客户进行举重:

将并行调用所有3个API,等待所有API的响应.在本地存储它们.

根据时间戳进行合并和排序.

剪切最上面的n个项目并显示在设备上.

当用户滚动时,将检查本地是否存在任何数据并相应地调用API.

2.仅在服务器端进行重装:

有一个代理人将与所有服务进行对话.

收到客户的要求后fetchData (noOfItems, fetchedUntilTimestamp),

代理应通过调用getData(noOfItems, fetchFromTimeStamp)其中的每一个来从不同的源获取数据.

每个数据源都应从时间戳fetchFromTimeStamp及以下开始获取noOfItems并返回数据列表.

代理人应:

  1. SORTED_LIST =基于时间戳的多个来源的数据排序列表
  2. RESULT_LIST = SORTED_LIST的第一个noOfItems
  3. fetchedUntilTimestamp = RESULT_LIST的最后一项的时间戳

代理应返回客户端:RESULT_LIST + fetchedUntilTimeStamp

从下一个请求开始,客户端应fetchData (noOfItems, fetchedUntilTimestamp)使用fetchedUntilTimeStamp从前一个呼叫的服务器接收的呼叫进行呼叫

两者中哪一个更受青睐?有没有更好的解决方法呢?

architecture android client-server ios

5
推荐指数
1
解决办法
178
查看次数

标签 统计

android ×1

architecture ×1

client-server ×1

ios ×1