如何集成ASP.NET线程模型和ZeroMQ套接字?

时间:2013-03-19 13:05:42

标签: asp.net multithreading iis-7 zeromq

我正在构建一个ASP.NET服务(一个简单的aspx),它需要对ZeroMQ REP节点进行REQ调用。

所以我要使用REQ / REP模式,但我无法弄清楚在ASP.NET管道中初始化ZeroMQ上下文的正确方法。

此外,我可以在不同的ASP.NET线程之间共享一个连接,如果是,如何?

编辑:经过一番研究后,它认为专用线程中的inproc router应该是可行的,因为它会处理sincronization。

但出现了更多问题:

  1. 这样的inproc节点的另一端应该是经销商吗?如果是这样,它应该连接到REQ节点吗?或者它应该绑定到一个tcp端口,我应该编写REP服务器节点连接到它(后者会有点麻烦,因为我可能有不同的服务器暴露该服务)?
  2. 作为替代方案,在一端构建绑定到ROUTER套接字的inproc节点,并在另一端连接REQ是否正确?如果是这样,我应该对节点进行编码,以便它处理每条消息的手动信封,以便能够将响应发送回正确的请求线程吗?
  3. Application_Start是否正确初始化处理此类路由器的线程?
  4. 目前连接到REQ服务器的ROUTER / DEALER inproc节点看起来是最好的选择,但我不确定它是否可以从DEALER套接字连接。但这仍然只是一种推测,可能完全错误。

1 个答案:

答案 0 :(得分:0)

zmq_socket manual州:

  

ØMQ套接字不是线程安全的。应用程序不得使用套接字   从一个线程迁移套接字之后的多个线程   另一个有“全围栏”记忆障碍。