2

我正在开发一个云应用程序,它索引大量文档(使用 lucene),并托管一个 wcf 服务来搜索它。我有3个角色:

  • 我是托管 WCF 服务的 Web 角色,并将索引的副本保存在内存中。
  • 我用于管理的网络角色(更新索引)。
  • 一个工作角色,它正在轮询服务总线,以获取更新消息。

更新过程:

  • 登录到 Admin 网站,然后按下按钮。管理员 webrole 将更新消息放入队列,worker 角色收到此消息,遍历文档源(它们也在线)并开始更新。

我想每周更新一次或两次索引,因此工作角色将消息队列池化很多时间而没有结果(即使我在 thread.sleep 中设置了很大的睡眠时间),而且我们必须为每一次付费交易。

你认为呢?在辅助角色中托管 WCF 服务以接收更新消息,而不是不必要地(大部分)轮询消息队列会更好吗?

谢谢你的帮助!

4

2 回答 2

2

除非您对服务总线消息传递有一些非常特殊的需求,否则这听起来有点矫枉过正,尤其是在您发送的消息频率非常低的情况下。一个非常简单的 WCF 服务调用就足够了。如果 WCF 服务仅保留在内部(意味着通过内部端点访问而不将其暴露给外界),那么您甚至无需担心安全性。

于 2013-04-12T13:04:30.907 回答
1

这取决于您对该应用程序的未来计划。
WCF 绝对是建立角色间通信的好方法,尤其是对于这些“低频”事件。
但是,如果您计划拥有越来越多的这些管理事件(甚至可能计划安排其中一些事件,使用服务总线消息的交付计划选项),那么服务总线可能会为您提供更多的东西。如果你不需要异步、调度和横向扩展,那就去 WCF 祝你好运

于 2013-04-12T13:08:32.177 回答