为业务系统提供HttpClentBuilder,方便业务系统自己定义

parent c765979e
...@@ -15,7 +15,7 @@ import cn.quantgroup.tech.brave.properties.BraveProperties; ...@@ -15,7 +15,7 @@ import cn.quantgroup.tech.brave.properties.BraveProperties;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import okhttp3.Dispatcher; import okhttp3.Dispatcher;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureOrder; import org.springframework.boot.autoconfigure.AutoConfigureOrder;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
...@@ -34,7 +34,6 @@ import zipkin2.reporter.AsyncReporter; ...@@ -34,7 +34,6 @@ import zipkin2.reporter.AsyncReporter;
import zipkin2.reporter.Sender; import zipkin2.reporter.Sender;
import zipkin2.reporter.kafka11.KafkaSender; import zipkin2.reporter.kafka11.KafkaSender;
import javax.annotation.PostConstruct;
import javax.servlet.Filter; import javax.servlet.Filter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -78,7 +77,7 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter { ...@@ -78,7 +77,7 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter {
.sampler(brave.sampler.Sampler.create(braveProperties.getSample())) .sampler(brave.sampler.Sampler.create(braveProperties.getSample()))
.localServiceName(braveProperties.getServiceName()) .localServiceName(braveProperties.getServiceName())
.propagationFactory(ExtraFieldPropagation.newFactory(B3Propagation.FACTORY, "user-name")) .propagationFactory(ExtraFieldPropagation.newFactory(B3Propagation.FACTORY, "user-name"))
.currentTraceContext(ThreadContextCurrentTraceContext.create()) // puts trace IDs into logs .currentTraceContext(ThreadContextCurrentTraceContext.create())
.spanReporter(spanReporter()).build(); .spanReporter(spanReporter()).build();
} }
...@@ -97,18 +96,28 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter { ...@@ -97,18 +96,28 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter {
return SpringRabbitTracing.newBuilder(tracing); return SpringRabbitTracing.newBuilder(tracing);
} }
@Bean( name = "techHttpClient" ) /**
public CloseableHttpClient httpClient(Tracing tracing) { * 提供HttpClientBuilderBean
log.info("注册HttpClient"); * @param tracing
return TracingHttpClientBuilder.create(tracing).build(); * @return
*/
@Bean( name = "techHttpClientBuilder" )
public HttpClientBuilder httpClientBuilder(Tracing tracing) {
log.info("注册HttpClientBuilder");
return TracingHttpClientBuilder.create(tracing);
} }
@Bean( name = "techOkHttpClient" ) /**
public OkHttpClient okHttpClient(HttpTracing httpTracing) { * 提供OkHttpClientBean
log.info("注册OkHttpClient"); * @param httpTracing
* @return
*/
@Bean( name = "techOkHttpClientBuilder" )
public OkHttpClient.Builder okHttpClientBuilder(HttpTracing httpTracing) {
log.info("注册OkHttpClient.Builder");
return new OkHttpClient.Builder() return new OkHttpClient.Builder()
.dispatcher(new Dispatcher(httpTracing.tracing().currentTraceContext().executorService(new Dispatcher().executorService()))) .dispatcher(new Dispatcher(httpTracing.tracing().currentTraceContext().executorService(new Dispatcher().executorService())))
.addNetworkInterceptor(TracingInterceptor.create(httpTracing)).build(); .addNetworkInterceptor(TracingInterceptor.create(httpTracing));
} }
/** /**
...@@ -131,15 +140,19 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter { ...@@ -131,15 +140,19 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter {
return registration; return registration;
} }
/** adds tracing to the application-defined rest template */ /**
@PostConstruct * 提供RestTemplate
public void init() { * @return
*/
@Bean( name = "techRestTemplate")
public RestTemplate restTemplate() {
log.info("添加restTemplate拦截器"); log.info("添加restTemplate拦截器");
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
List<ClientHttpRequestInterceptor> interceptors = List<ClientHttpRequestInterceptor> interceptors =
new ArrayList<>(restTemplate.getInterceptors()); new ArrayList<>(restTemplate.getInterceptors());
interceptors.add(clientInterceptor); interceptors.add(clientInterceptor);
restTemplate.setInterceptors(interceptors); restTemplate.setInterceptors(interceptors);
return restTemplate;
} }
@Override @Override
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<module>commons-core</module> <module>commons-core</module>
<module>commons-spring</module> <module>commons-spring</module>
<module>shutdown-spring-boot-starter</module> <module>shutdown-spring-boot-starter</module>
<module>commons-brave</module> <module>brave-spring-boot-starter</module>
</modules> </modules>
<packaging>pom</packaging> <packaging>pom</packaging>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment