384.10. 예


camel-zipkin을 활성화하려면 먼저 구성해야합니다.

ZipkinTracer zipkin = new ZipkinTracer();
// Configure a reporter, which controls how often spans are sent
//   (the dependency is io.zipkin.reporter2:zipkin-sender-okhttp3)
sender = OkHttpSender.create("http://127.0.0.1:9411/api/v2/spans");
zipkin.setSpanReporter(AsyncReporter.create(sender));
// and then add zipkin to the CamelContext
zipkin.init(camelContext);

위의 구성은 Camel 경로에서 들어오고 나가는 모든 메시지를 추적합니다.

XML에서 ZipkinTracer를 사용하려면 scribe 및 zipkin 추적기 빈을 정의하는 것입니다. Camel에서 자동으로 검색 및 사용합니다.

  <!-- configure how to reporter spans to a Zipkin collector
          (the dependency is io.zipkin.reporter2:zipkin-reporter-spring-beans) -->
  <bean id="http" class="zipkin2.reporter.beans.AsyncReporterFactoryBean">
    <property name="sender">
      <bean id="sender" class="zipkin2.reporter.beans.OkHttpSenderFactoryBean">
        <property name="endpoint" value="http://localhost:9411/api/v2/spans"/>
      </bean>
    </property>
    <!-- wait up to half a second for any in-flight spans on close -->
    <property name="closeTimeout" value="500"/>
  </bean>

  <!-- setup zipkin tracer -->
  <bean id="zipkinTracer" class="org.apache.camel.zipkin.ZipkinTracer">
    <property name="serviceName" value="dude"/>
    <property name="spanReporter" ref="http"/>
  </bean>

384.10.1. ServiceName

그러나 Camel 끝점을 사용자에게 친숙한 논리 이름에 매핑하려면 매핑을 추가할 수 있습니다.

  • ServiceName *

모든 이벤트가 대체되고 사용할 글로벌 서비스 이름을 구성할 수 있습니다. 예를 들면 다음과 같습니다.

zipkin.setServiceName("invoices");

이는 모든 수신 및 발신 zipkin 추적에 동일한 서비스 이름을 사용합니다. 애플리케이션이 다른 서비스를 사용하는 경우 이를 보다 세분화된 클라이언트/서버 서비스 매핑에 매핑해야 합니다.

384.10.2. 클라이언트 및 서버 서비스 매핑

  • ClientServiceMappings
  • ServerServiceMappings

애플리케이션에서 다른 사용자가 호출할 수 있는 서비스를 호스팅하는 경우 Camel 경로 끝점을 서버 서비스 매핑에 매핑할 수 있습니다. 예를 들어 Camel 애플리케이션에 다음 경로가 있다고 가정합니다.

from("activemq:queue:inbox")
  .to("http:someserver/somepath");

또한 서버 서비스로 다음 매핑을 추가할 수 있습니다.

zipkin.addServerServiceMapping("activemq:queue:inbox", "orders");

그런 다음 메시지를 받은 편지함 큐에서 사용하면 서비스 이름 'orders'와 함께 zipkin 서버 이벤트가 됩니다.

이제 http:someserver/somepath에 대한 호출은 다음과 같이 수행할 수 있는 클라이언트 서비스 이름에 매핑하려는 서비스이기도 합니다.

zipkin.addClientServiceMapping("http:someserver/somepath", "audit");

그런 다음 동일한 Camel 애플리케이션에서 들어오는 엔드포인트와 발신 엔드포인트를 다른 zipkin 서비스 이름에 매핑했습니다.

서비스 매핑에 와일드카드를 사용할 수 있습니다. 동일한 HTTP 서버에 대한 모든 발신 호출과 일치하려면 다음을 수행할 수 있습니다.

zipkin.addClientServiceMapping("http:someserver*", "audit");
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.