在SpringBoot中使用Jaeger将请求标头转发到下一个微服务

时间:2019-02-13 16:51:17

标签: spring-boot tracing zipkin jaeger

我有两个基本的Springboot微服务,我正在使用Jaeger。假设两个服务是import scipy.sparse as spsparse from sklearn.metrics.pairwise import cosine_similarity import numpy as np def sparse_similarity(X, epsilon=0.99, Y=None, similarity_metric=cosine_similarity): ''' X : ndarray An m by n array of m original observations in an n-dimensional space. ''' Nx, Dx = X.shape if Y is None: Y=X Ny, Dy = Y.shape assert Dx==Dy data = [] indices = [] indptr = [0] for ix in range(Nx): xsim = similarity_metric([X[ix]], Y) _ , kept_points = np.nonzero(xsim>=epsilon) data.extend(xsim[0,kept_points]) indices.extend(kept_points) indptr.append(indptr[-1] + len(kept_points)) return spsparse.csr_matrix((data, indices, indptr), shape=(Nx,Ny)) X = np.random.random(size=(1000,10)) sparse_similarity(X, epsilon=0.95) foo。我可以使用跟踪行李属性将foo的bar头发送到酒吧服务。

User-Agent服务开始,到现在为止,我将使用foo调用bar服务。

用户还将在请求中发送localhost:port标头。此标头未从x-api-key转发到foo服务。

这是我的代码段,

bar

在我的public ResponseEntity<String> fooService(@RequestHeader("User-Agent") String userAgent, @RequestHeader(value="x-api-key", required = false) String apikeyHeader) { try { /** * Set baggage */ tracer.activeSpan().setBaggageItem("user-agent", userAgent); if (apikeyHeader != null && !apikeyHeader.isEmpty()) { tracer.activeSpan().setBaggageItem("x-api-key", apikeyHeader); } 服务的日志中,它正在接收这些标头, baruberctx-user-agent

我不确定为什么要附加uberctx-x-api-key,我只希望转发uber-ctx-*标头。

1 个答案:

答案 0 :(得分:0)

设置行李物品与设置HTTP标头相同。您应该使用HTTP客户端(示例中未显示)来设置HTTP标头。

行李项可能作为单独的HTTP标头提供或不提供:它是底层跟踪器(例如Jaeger的)的详细实现。