我正处于我们新网站的规划阶段——它是我们构建的一些移动应用程序的扩展。我们希望为我们的用户提供一个交流的中心点,并为不想/不能使用移动应用程序的用户提供功能。我们正在考虑添加的功能之一是本质上类似于 SO 徽章系统的声誉系统。我们正在设计系统以使用 SOA。
我不想将所有这些逻辑编码到主应用程序中作为谨慎的块。我正在考虑创建一种方法来实现这一点,这将使我们能够定义新的阈值和规则来获得声誉并将它们注入某些服务中。到目前为止,我想到的两种方法是:
- 要查找用户操作中的某些特征并做出响应,这意味着运行的服务可以通过“插入式”奖励定义运行并检查已达到的阈值并做出适当的响应。
- 在用户执行操作时触发事件 - 监听这些事件并做出适当的响应。因为将执行这些操作的服务可能在不同的服务器上运行在不同的应用程序域中,所以我可以看到有一个中央消息总线来监听和响应这些事件的唯一方法是使用 MassTransit、nServiceBus 或 Rhino.Esb .
我知道使用服务总线很容易被不恰当地设计成根本不需要它的应用程序,而且大多数时候——除非你正在集成不同的异构系统——在设计新系统时你很可能不需要它但我有点迷失了最佳方式的选择。我不喜欢让服务一直在后台敲击 Db 的想法。但它听起来确实在早期可能会简单得多 - 后来 - 我不敢想!
这里有人设计过这样的系统吗?你是怎么做到的?我们正在设计高吞吐量,因为我们预计系统有时需要能够应对用户的激增。