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

parent c765979e
......@@ -15,7 +15,7 @@ import cn.quantgroup.tech.brave.properties.BraveProperties;
import lombok.extern.slf4j.Slf4j;
import okhttp3.Dispatcher;
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.boot.autoconfigure.AutoConfigureOrder;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
......@@ -34,7 +34,6 @@ import zipkin2.reporter.AsyncReporter;
import zipkin2.reporter.Sender;
import zipkin2.reporter.kafka11.KafkaSender;
import javax.annotation.PostConstruct;
import javax.servlet.Filter;
import java.util.ArrayList;
import java.util.List;
......@@ -78,7 +77,7 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter {
.sampler(brave.sampler.Sampler.create(braveProperties.getSample()))
.localServiceName(braveProperties.getServiceName())
.propagationFactory(ExtraFieldPropagation.newFactory(B3Propagation.FACTORY, "user-name"))
.currentTraceContext(ThreadContextCurrentTraceContext.create()) // puts trace IDs into logs
.currentTraceContext(ThreadContextCurrentTraceContext.create())
.spanReporter(spanReporter()).build();
}
......@@ -97,18 +96,28 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter {
return SpringRabbitTracing.newBuilder(tracing);
}
@Bean( name = "techHttpClient" )
public CloseableHttpClient httpClient(Tracing tracing) {
log.info("注册HttpClient");
return TracingHttpClientBuilder.create(tracing).build();
/**
* 提供HttpClientBuilderBean
* @param tracing
* @return
*/
@Bean( name = "techHttpClientBuilder" )
public HttpClientBuilder httpClientBuilder(Tracing tracing) {
log.info("注册HttpClientBuilder");
return TracingHttpClientBuilder.create(tracing);
}
@Bean( name = "techOkHttpClient" )
public OkHttpClient okHttpClient(HttpTracing httpTracing) {
log.info("注册OkHttpClient");
/**
* 提供OkHttpClientBean
* @param httpTracing
* @return
*/
@Bean( name = "techOkHttpClientBuilder" )
public OkHttpClient.Builder okHttpClientBuilder(HttpTracing httpTracing) {
log.info("注册OkHttpClient.Builder");
return new OkHttpClient.Builder()
.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 {
return registration;
}
/** adds tracing to the application-defined rest template */
@PostConstruct
public void init() {
/**
* 提供RestTemplate
* @return
*/
@Bean( name = "techRestTemplate")
public RestTemplate restTemplate() {
log.info("添加restTemplate拦截器");
RestTemplate restTemplate = new RestTemplate();
List<ClientHttpRequestInterceptor> interceptors =
new ArrayList<>(restTemplate.getInterceptors());
interceptors.add(clientInterceptor);
restTemplate.setInterceptors(interceptors);
return restTemplate;
}
@Override
......
......@@ -18,7 +18,7 @@
<module>commons-core</module>
<module>commons-spring</module>
<module>shutdown-spring-boot-starter</module>
<module>commons-brave</module>
<module>brave-spring-boot-starter</module>
</modules>
<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