SpringCloud 將跨度發(fā)送到Zipkin

2023-12-02 10:57 更新

默認(rèn)情況下,如果將spring-cloud-starter-zipkin作為依賴項(xiàng)添加到項(xiàng)目,則關(guān)閉跨度后,跨度將通過HTTP發(fā)送到Zipkin。通信是異步的。您可以通過設(shè)置spring.zipkin.baseUrl屬性來配置URL,如下所示:

spring.zipkin.baseUrl: https://192.168.99.100:9411/

如果您想通過服務(wù)發(fā)現(xiàn)來找到Zipkin,則可以在URL內(nèi)傳遞Zipkin的服務(wù)ID,如以下zipkinserver服務(wù)ID的示例所示:

spring.zipkin.baseUrl: http://zipkinserver/

要禁用此功能,只需將spring.zipkin.discoveryClientEnabled設(shè)置為`false。

啟用發(fā)現(xiàn)客戶端功能后,Sleuth使用LoadBalancerClient查找Zipkin服務(wù)器的URL。這意味著您可以設(shè)置負(fù)載平衡配置,例如通過Ribbon。

zipkinserver:
  ribbon:
    ListOfServers: host1,host2

如果在類路徑上一起有web,rabbit或kafka,則可能需要選擇將spans發(fā)送到zipkin的方式。為此,請將webrabbitkafka設(shè)置為spring.zipkin.sender.type屬性。以下示例顯示了為web設(shè)置發(fā)件人類型:

spring.zipkin.sender.type: web

要自定義通過HTTP發(fā)送spans到Zipkin的RestTemplate,可以注冊ZipkinRestTemplateCustomizer bean。

@Configuration
class MyConfig {
	@Bean ZipkinRestTemplateCustomizer myCustomizer() {
		return new ZipkinRestTemplateCustomizer() {
			@Override
			void customize(RestTemplate restTemplate) {
				// customize the RestTemplate
			}
		};
	}
}

但是,如果您想控制創(chuàng)建RestTemplate對象的整個過程,則必須創(chuàng)建zipkin2.reporter.Sender類型的bean。

	@Bean Sender myRestTemplateSender(ZipkinProperties zipkin,
			ZipkinRestTemplateCustomizer zipkinRestTemplateCustomizer) {
		RestTemplate restTemplate = mySuperCustomRestTemplate();
		zipkinRestTemplateCustomizer.customize(restTemplate);
		return myCustomSender(zipkin, restTemplate);
	}
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號