1313import io .netty .handler .ssl .SslContext ;
1414import io .netty .handler .ssl .SslContextBuilder ;
1515import io .netty .handler .ssl .util .InsecureTrustManagerFactory ;
16- import love .wangqi .codec .DefaultHttpRequestBuilder ;
16+ import love .wangqi .codec .RequestHolder ;
1717import love .wangqi .exception .TimeoutException ;
1818import love .wangqi .handler .BackendFilter ;
1919import love .wangqi .server .GatewayServer ;
2727 */
2828public class ForwardCommand extends HystrixCommand <Void > {
2929 private ChannelHandlerContext ctx ;
30- private DefaultHttpRequestBuilder . RequestHolder requestHolder ;
30+ private RequestHolder requestHolder ;
3131
32- public ForwardCommand (ChannelHandlerContext ctx , DefaultHttpRequestBuilder . RequestHolder requestHolder ) {
32+ public ForwardCommand (ChannelHandlerContext ctx , RequestHolder requestHolder ) {
3333 super (Setter .withGroupKey (HystrixCommandGroupKey .Factory .asKey ("ForwardCommandGroup" ))
3434 .andCommandKey (HystrixCommandKey .Factory .asKey ("ForwardCommand" ))
3535 .andThreadPoolKey (HystrixThreadPoolKey .Factory .asKey ("threadPool-" + requestHolder .route .getId ()))
@@ -46,15 +46,14 @@ public ForwardCommand(ChannelHandlerContext ctx, DefaultHttpRequestBuilder.Reque
4646 .withFallbackIsolationSemaphoreMaxConcurrentRequests (100 )
4747 )
4848 );
49-
5049 this .ctx = ctx ;
5150 this .requestHolder = requestHolder ;
5251 }
5352
5453
5554 @ Override
5655 protected Void run () throws Exception {
57- forward (ctx . channel () , requestHolder .url , requestHolder .request , requestHolder .bodyRequestEncoder );
56+ forward (ctx , requestHolder .url , requestHolder .request , requestHolder .bodyRequestEncoder );
5857 return null ;
5958 }
6059
@@ -99,7 +98,7 @@ private UrlMetadata getProtocol(URL url) {
9998 return new UrlMetadata (protocol , host , port );
10099 }
101100
102- private void forward (Channel inboundChannel , URL url , HttpRequest request , HttpPostRequestEncoder bodyRequestEncoder ) throws Exception {
101+ private void forward (ChannelHandlerContext ctx , URL url , HttpRequest request , HttpPostRequestEncoder bodyRequestEncoder ) throws Exception {
103102 UrlMetadata urlMetadata = getProtocol (url );
104103 // Configure SSL context if necessary.
105104 final boolean ssl = "https" .equalsIgnoreCase (urlMetadata .protocol );
@@ -111,12 +110,12 @@ private void forward(Channel inboundChannel, URL url, HttpRequest request, HttpP
111110 sslCtx = null ;
112111 }
113112
114- EventLoopGroup group = new NioEventLoopGroup ();
113+ EventLoopGroup group = new NioEventLoopGroup (1 );
115114 try {
116115 Bootstrap b = new Bootstrap ();
117116 b .group (group )
118117 .channel (NioSocketChannel .class )
119- .handler (new BackendFilter (sslCtx , inboundChannel ));
118+ .handler (new BackendFilter (sslCtx , ctx ));
120119
121120 Channel ch = b .connect (urlMetadata .host , urlMetadata .port ).sync ().channel ();
122121
0 commit comments