如何整合ASP.NET线程模型和ZeroMQ套接字?

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

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

而且,我可以在不同的ASP.NET线程之间共享一个单独的连接吗?如果是这样的话?

编辑 :经过一番研究后,在我看来,专用线程中的inproc路由器应该是最好的选择,因为它可以处理sincronization。

但是会出现更多问题:

  • 这种inproc节点的另一端应该是DEALER? 如果是这样,它应该连接到REQ节点吗? 或者它应该绑定到一个tcp端口,我应该编码REP服务器节点来连接它(后者会有点麻烦,因为我可能有不同的服务器暴露服务)?
  • 另一种方法是,在一端建立一个绑定到ROUTER套接字的inproc节点并在另一端连接REQ是否正确? 如果是这样,我应该编码节点,以便它处理每个消息的手动包络只是为了能够将响应发送回正确的请求线程?
  • Application_Start是否正确的管道点来初始化处理这种路由器的线程?
  • 目前连接到REQ服务器的ROUTER / DEALER inproc节点看起来是最好的选择,但我不确定它是否可能从DEALER套接字连接 。 但这仍然只是一种猜测,可能完全是错误的。


    zmq_socket手册指出:

    ØMQ插座不是线程安全的。 应用程序绝不能使用来自多个线程的套接字,除非在将套接字从一个线程迁移到另一个线程的情况下具有“完全围栅”内存屏障。

    链接地址: http://www.djcxy.com/p/18369.html

    上一篇: How to integrate the ASP.NET thread model and ZeroMQ sockets?

    下一篇: Distributing task with python and zeromq