我读过this,但还是听不懂。
我想做的是一家书店。
有很多书籍对象,每本书有两个柜台。
一个计数器是记录喜欢它的人数。
另一个是记录讨厌它的人数。
显然,如果有5个人以上同时喜欢或讨厌一本书,我需要增加交易的计数器,对吗?
我的问题是:
1.如何在同一实体组中制作书籍和柜台,以便我可以在同一笔交易中使用它们。
2.如何实现分片计数器?我不明白为什么(在第三个示例中为here)需要ShardedCounter,Counter和GeneralCounterShard,以及如何使用它们?
3.谁能给我一个例子吗?我正在使用JDO。
感谢您的任何建议!
最佳答案
您是否真的担心超过5个人在同一秒内更新同一本书的计数器?那可能是您的应用流量巨大的标志。如果是这样,您可能要解决的问题要比计数器可能要经过一两张选票就更重要的问题要解决。
我只是将计数器作为Book
实体的一部分:
public class Book {
// ...
private int numberOfLovers;
private int numberOfHaters;
// ...
}
保持简单,只有在遇到问题时才更改设计。