生活随笔
收集整理的這篇文章主要介紹了
Dapr牵手.NET学习笔记:可观测性-分布式跟踪
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
分布式跟蹤在dapr里是開(kāi)箱即用的,不需要對(duì)應(yīng)用作任何一丁點(diǎn)的侵入式編程。之前的開(kāi)發(fā),如果想實(shí)現(xiàn)分式跟蹤,就得在應(yīng)用中埋點(diǎn),這是一個(gè)與業(yè)務(wù)無(wú)關(guān)系的動(dòng)作。dpar通過(guò)sidecar可以輕松做到這點(diǎn),從而讓程序員更多精力投入到業(yè)務(wù)中,又讓運(yùn)維得到可觀測(cè)性能數(shù)據(jù),對(duì)服務(wù)運(yùn)維保駕護(hù)航。從此以后,開(kāi)發(fā)和運(yùn)維再?zèng)]有愛(ài)恨情愁,可以友好的做朋友。
接上一篇的docker-compose部署,在docker-compose.yam中只需要增加zipkin在的節(jié)點(diǎn),并且每個(gè)服務(wù)的sidecar啟動(dòng)時(shí)指定zipkin配置即可。
version: '3.4'
services:#┌────────────────────────────────┐#│ ordersystem app + Dapr sidecar │#└────────────────────────────────┘o(jì)rdersystem:image: ${DOCKER_REGISTRY-}ordersystemdepends_on:- redis- placement - rabbitmq - zipkin build:context: ../dockerfile: OrderSystem/Dockerfileports:- "3500:3500" volumes: - ../OrderSystem:/OrderSystem networks:- b2c-daprordersystem-dapr:image: "daprio/daprd:latest"command: [ "./daprd", "-app-id", "order", "-app-port", "80","-placement-host-address", "placement:50006","-components-path","/components","-config","/home/nonroot/.dapr/config.yaml" ]depends_on:- ordersystemnetwork_mode: "service:ordersystem"volumes: - ../components:/components - ../:/home/nonroot/.dapr #┌───────────────────────────────────┐#│ paymentsystem1 app + Dapr sidecar │#└───────────────────────────────────┘ paymentsystem1:image: ${DOCKER_REGISTRY-}paymentsystemdepends_on:- redis- placement - rabbitmq - zipkin build:context: ../dockerfile: PaymentSystem/Dockerfileports:- "3601:3500"volumes: - ../PaymentSystem:/PaymentSystem networks:- b2c-dapr paymentsystem1-dapr:image: "daprio/daprd:latest"command: [ "./daprd", "-app-id", "pay", "-app-port", "80","-placement-host-address", "placement:50006","-components-path","/components","-config","/home/nonroot/.dapr/config.yaml" ]depends_on:- paymentsystem1network_mode: "service:paymentsystem1"volumes: - ../components:/components - ../:/home/nonroot/.dapr #┌───────────────────────────────────┐#│ paymentsystem2 app + Dapr sidecar │#└───────────────────────────────────┘ paymentsystem2:image: ${DOCKER_REGISTRY-}paymentsystemdepends_on:- redis- placement - rabbitmq - zipkin build:context: ../dockerfile: PaymentSystem/Dockerfilevolumes: - ../PaymentSystem:/PaymentSystem ports:- "3602:3500"networks:- b2c-dapr paymentsystem2-dapr:image: "daprio/daprd:latest"command: [ "./daprd", "-app-id", "pay", "-app-port", "80" ,"-placement-host-address", "placement:50006","-components-path","/components","-config","/home/nonroot/.dapr/config.yaml"]depends_on:- paymentsystem2network_mode: "service:paymentsystem2"volumes: - ../components:/components - ../:/home/nonroot/.dapr #┌───────────────────────────────────┐#│ noticesystem1 app + Dapr sidecar │#└───────────────────────────────────┘ noticesystem1:image: ${DOCKER_REGISTRY-}noticesystemdepends_on:- redis- placement - rabbitmq - zipkin build:context: ../dockerfile: NoticeSystem/Dockerfileports:- "3701:3500"volumes: - ../NoticeSystem:/NoticeSystem networks:- b2c-dapr noticesystem1-dapr:image: "daprio/daprd:latest"command: [ "./daprd", "-app-id", "notice", "-app-port", "80","-placement-host-address", "placement:50006","-components-path","/components","-config","/home/nonroot/.dapr/config.yaml" ]depends_on:- noticesystem1network_mode: "service:noticesystem1"volumes: - ../components:/components - ../:/home/nonroot/.dapr #┌───────────────────────────────────┐#│ noticesystem2 app + Dapr sidecar │#└───────────────────────────────────┘ noticesystem2:image: ${DOCKER_REGISTRY-}noticesystemdepends_on:- redis- placement - rabbitmq - zipkin build:context: ../dockerfile: NoticeSystem/Dockerfileports:- "3702:3500"volumes: - ../NoticeSystem:/NoticeSystem networks:- b2c-dapr noticesystem2-dapr:image: "daprio/daprd:latest"command: [ "./daprd", "-app-id", "notice", "-app-port", "80","-placement-host-address", "placement:50006","-components-path","/components" ,"-config","/home/nonroot/.dapr/config.yaml"]depends_on:- noticesystem2network_mode: "service:noticesystem2"volumes: - ../components:/components - ../:/home/nonroot/.dapr #┌────────────────────────┐#│ Dapr placement service │#└────────────────────────┘ placement:image: "daprio/dapr"command: ["./placement", "-port", "50006"]ports:- "50006:50006"networks:- b2c-dapr#┌──────────────────────────┐#│ Zipkin service │#└──────────────────────────┘ zipkin:image: "openzipkin/zipkin"ports:- "9411:9411"networks:- b2c-dapr#┌───────────────────┐#│ Redis state store │#└───────────────────┘ redis:image: "redis:latest"ports:- "6379:6379"networks:- b2c-dapr#┌──────────────────────┐#│ RabbitMQ │#└──────────────────────┘ rabbitmq:image: "rabbitmq:management"ports:- "15672:15672"- "5672:5672" environment:- RABBITMQ_DEFAULT_USER=admin- RABBITMQ_DEFAULT_PASS=!2021que networks:- b2c-dapr networks:b2c-dapr:
config.yaml,指定了tracing的配置,zipkin的地址是:http://zipkin:9411/api/v2/spans
apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:name: daprConfig
spec:tracing:samplingRate: "1"zipkin:endpointAddress:?http://zipkin:9411/api/v2/spans
這是一個(gè)調(diào)用的跟蹤結(jié)果(一)
這是一個(gè)調(diào)用的跟蹤結(jié)果(二)
這是一個(gè)調(diào)用的跟蹤結(jié)果(三)
這是一個(gè)發(fā)布訂閱的跟蹤結(jié)果(一)
這是一個(gè)發(fā)布訂閱的跟蹤結(jié)果(一)
總結(jié)
以上是生活随笔為你收集整理的Dapr牵手.NET学习笔记:可观测性-分布式跟踪的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。