title: Netty channels lifecycle
body: <p>After reading netty guides and examples I still have some questions:</p>
  
  <p>My app communicates with multiple third party endpoints. For this purpose I am using http client implemented with Netty.
  So basically the flow is the following</p>
  
  <ol>
  <li>Http call to execute operation 1
  --some business logic procesing--</li>
  <li>Http call to execute operation 2
  --some business logic procesing--</li>
  <li>Http call to execute operation 3
  --some business logic procesing--</li>
  </ol>
  
  <p>Every operation is executed in different thread.</p>
  
  <p>Q1: Do I need to create and close the channel for every new request or I just need to reuse the same channel per endoint and use it until is available. </p>
  
  <p>Q2: As I am communicating with multiple systems I suppose that I must use some kind of channels pooling?</p>
  
  <p>Q3: If I have to reuse the channel, how to handle closed channel. Let's say I have multiple threads wanting to trigger http request to the same channel and the first one fails because connection is closed. Do I need to coordinate/lock threads to wait for creation of new channel and allowing to proceed only after new channel is open again?</p>
  
  <p>Q4: When I will want to have more than one channel per endpoint? (Perhaps if I want to utilize better processor cores?)</p>