注意:服务之外的数据是指服务返回并由客户端使用的消息。
我有一个名为LastBuyer Service的服务。当我将bookID输入到服务时,这将返回书籍的最后买家名称。当我为相同的图书ID呼叫服务时,它将返回不同的结果(如果新买家购买了一本书)。所以我无法在客户端缓存服务的结果(对于特定的BookID)。
在阅读文章“关于内部数据与外部数据”时,它说“Ok to Cache” - “由于消息的ID返回相同的数据,因此可以缓存消息”。
参考:http://msdn.microsoft.com/en-us/library/ms954587.aspx
我理解的缺点是什么?
上述示例中的消息是否不可变?
以上示例中依赖于版本和版本的标识符是什么?
如何在此处完成消息的版本控制?
哪本WCF书籍通过示例清楚地解释了SOA概念和模式?
阅读
答案 0 :(得分:2)
您错过了(如@ Carsten-Konig所暗示的)任何给定快照时间的数据 是不可变的。除非你回去填写旧订单,否则从昨天下午5点开始购买这本书的最后一个人总是会一样的。事实上从那以后有人买了这本书(导致该数据的新版本)与昨天的结果无关。这可能是也可能不是有用的数据来缓存,但是在任何给定的时间点它都是不可变的。
如果邮件的部分密钥是时间戳,则邮件是不可变的。
与版本无关的标识符是图书的ID。与版本相关的标识符是快照时间戳。
通过快照时间戳(对于缓存目的而言,可能有用或无用)
关于这个问题的好书,恐怕我不能给出建议。但我怀疑亚马逊或bn.com上的评论是一个很好的起点。