【问题标题】:How to integrate the ASP.NET thread model and ZeroMQ sockets?如何集成 ASP.NET 线程模型和 ZeroMQ 套接字?
【发布时间】:2013-03-08 04:17:09
【问题描述】:

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

所以我必须使用 REQ/REP 模式,但我不知道在 ASP.NET 管道中初始化 ZeroMQ 上下文的正确方法。

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

编辑:经过一番研究,在我看来,专用线程中的inproc router 应该是可行的方法,因为它可以处理 sincronization。

但出现了更多问题:

  1. 这种inproc 节点的另一端应该是DEALER?如果是这样,它应该连接到 REQ 节点吗?或者它应该绑定到一个 tcp 端口,我应该编写 REP 服务器节点来连接它(后者会有点麻烦,因为我可以让不同的服务器公开服务)?
  2. 作为替代方案,在一端构建一个绑定到 ROUTER 套接字的 inproc 节点并在另一端与 REQ 连接是否正确?如果是这样,我是否应该对节点进行编码,以便它处理每条消息的手动信封,以便能够将响应发送回正确的请求线程?
  3. Application_Start 是否是正确的管道点来初始化处理此类路由器的线程?

目前,连接到 REQ 服务器的 ROUTER/DEALER inproc 节点看起来是最佳选择,但我不确定是否可以从 DEALER 套接字连接。但这仍然只是一种推测,可能是完全错误的。

【问题讨论】:

    标签: asp.net multithreading iis-7 zeromq


    【解决方案1】:

    zmq_socket manual 声明:

    ØMQ 套接字不是线程安全的。应用程序不得使用套接字 来自多个线程,除了从一个线程迁移套接字之后 到另一个具有“全栅栏”内存屏障的。

    【讨论】:

    • 1) 上下文呢? 2)所以我必须在请求开始时连接()并在最后关闭套接字?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 2012-03-03
    相关资源
    最近更新 更多