Pemantauan seni bina perkhidmatan mikro melibatkan pengumpulan penunjuk termasuk Prometheus, Grafana dan Zipkin rangka kerja yang biasa digunakan termasuk Log4j 2, Slf4j dan Logback. Contoh praktikal khusus termasuk: menggunakan Prometheus dan Grafana untuk memantau bilangan permintaan, menggunakan Zipkin untuk menjejaki permintaan perkhidmatan, menggunakan Log4j 2 untuk merekod penerimaan permintaan dan menggunakan Slf4j untuk pengelogan.
Peningkatan seni bina perkhidmatan mikro telah membawa cabaran unik kepada pemantauan dan pengelogan aplikasi. Aplikasi yang diedarkan mengandungi banyak perkhidmatan bebas dan gandingan longgar yang memerlukan pemantauan dan pengelogan berterusan untuk memastikan kebolehpercayaan dan prestasinya.
Panduan ini akan memperkenalkan amalan terbaik untuk memantau dan mengelog dalam seni bina perkhidmatan mikro Java dan memberikan contoh praktikal.
Pemantauan seni bina perkhidmatan mikro melibatkan pengumpulan dan analisis metrik tentang setiap komponen perkhidmatan dan infrastruktur. Alat pemantauan biasa termasuk:
Kes praktikal:
Memantau perkhidmatan mikro Java menggunakan Prometheus dan Grafana:
dependencies { implementation 'io.micrometer:micrometer-registry-prometheus:1.8.1' implementation 'io.prometheus:simpleclient_hotspot:0.11.0' }
Counter requestCounter = Counter .builder("web.requests") .description("Number of HTTP requests") .register(Metrics.globalRegistry);
Menjejaki perkhidmatan mikro Java menggunakan Zipkin:
dependencies { implementation 'io.github.openzipkin.brave:brave:5.14.7' implementation 'io.zipkin.brave:brave-http:5.14.7' implementation 'io.zipkin.brave:brave-opentracing:5.14.7' }
Span span = tracer.newTrace().start(); HttpClient client = HttpClient.create().newBuilder() .tracers(new ZipkinBraveTracer()).build();
menyahlogi
Ia penting. Rangka kerja pengelogan biasa termasuk:Kes praktikal:
Gunakan Log4j 2 untuk merakam perkhidmatan mikro Java:dependencies { implementation 'org.apache.logging.log4j:log4j-api:2.18.0' implementation 'org.apache.logging.log4j:log4j-core:2.18.0' }
private final Logger logger = LogManager.getLogger(MyService.class); logger.info("Received request for {}", request);
dependencies { implementation 'org.slf4j:slf4j-api:2.0.0' }
private static final Logger logger = LoggerFactory.getLogger(MyService.class); logger.info("Received request for {}", request);
Atas ialah kandungan terperinci Pemantauan dan pengelogan seni bina perkhidmatan mikro Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!