title: Multithreaded .NET RabbitMQ publisher
body: <p>We have the following scenario using the .NET RabbitMQ library:</p>
  
  <p>A worker thread picks up 'request' messages from a queue and dispatches them on multiple worker threads for processing. When complete, each worker thread then sends another message. </p>
  
  <p>My question is what 'pattern' do people recommend for the sender in order to get the best throughput and stability?. For example:</p>
  
  <p>1) A singleton 'publisher' instance that is accessed by all worker threads with a single Connection and IModel (using a 'lock' to synchronize access to the IModel)</p>
  
  <p>2) A singleton 'publisher' instance that is accessed by all worker threads with a single Connection and which creates a new IModel for each send request.</p>
  
  <p>or something else?</p>