Service registry — taqsimlangan tizimdagi xizmat instancelari, ularning tarmoq manzili va sog‘lomlik holatini saqlaydigan katalogdir. Client yoki proxy registry orqali ayni paytda mavjud endpointlarni topadi. Dinamik container va VM muhitida IP manzillar o‘zgargani uchun statik konfiguratsiya o‘rniga service discovery ishlatiladi.
Ro‘yxatdan o‘tish modeli
Self-registration modelida service instance ishga tushganda registryga o‘zini yozadi, heartbeat yuboradi va to‘xtaganda deregister qiladi. Third-party registrationda orchestrator yoki agent instance nomidan ro‘yxatni boshqaradi. Ikkinchi usul application kodini discovery tafsilotidan ajratishi mumkin.
Yozuv service nomi, IP, port, protocol, version, zone va metadata saqlashi mumkin. Registry credential yoki katta konfiguratsiya ombori emas. Metadata hajmi va ruxsatlari cheklanadi.
Health va lease
Registry instance sog‘lomligini TTL heartbeat, TCP, HTTP yoki custom check orqali baholaydi. TTL tugasa yozuv stale deb chiqariladi. Juda qisqa interval tarmoq tebranishida false removal, juda uzun interval esa o‘lik endpointga trafik yuborishni uzaytiradi.
Health check application readinessni to‘g‘ri aks ettirishi kerak. Process tirik, ammo database pool ishlamayotgan bo‘lishi mumkin. Aksincha har kichik dependency uzilishida barcha instanceni registrydan chiqarish cascading failure keltiradi. Critical path va degraded mode hisobga olinadi.
Discovery usullari
Client-side discoveryda client registrydan endpointlar oladi va load balancing qiladi. Server-side modelda client barqaror proxy yoki load balancerga ulanadi, u registry asosida backend tanlaydi. Service mesh sidecar bu vazifani applicationdan ajratadi.
DNS-based discovery service nomini A, AAAA yoki SRV recordlarga bog‘laydi. DNS cache va TTL o‘zgarish tezligiga ta’sir qiladi. API registry boy metadata va watch beradi, ammo client library hamda availability dependency qo‘shadi.
Consistency
Registry taqsimlangan bo‘lsa node failure va network partitionda consistency siyosati muhim. Consensus cluster yozuvlar uchun yagona tartib beradi. Ayrim tizim availabilityni ustun qilib vaqtincha stale ma’lumot qaytarishi mumkin. Client timeout, retry va last-known endpoint siyosatiga ega bo‘ladi.
Registry ishlamay qolsa mavjud connectionlar davom etishi mumkin, lekin yangi discovery to‘xtaydi. Local cache qisqa uzilishni yengadi, biroq uzoq stale endpoint xavfi bor. Control plane va data plane ajratilishi resilience dizaynining qismidir.
Xavfsizlik
Ruxsatsiz instance o‘zini ishonchli service nomi bilan ro‘yxatdan o‘tkazsa trafikni egallashi mumkin. Mutual TLS yoki workload identity registratsiyani autentifikatsiya qiladi. ACL qaysi identity qaysi service yozuvini o‘qishi yoki o‘zgartirishini cheklaydi.
Audit log registration, health change va deregistrationni saqlaydi. Registry API Internetga bevosita ochilmaydi. Service metadata ichida token yoki maxfiy qiymat yozilmaydi.
Ma’lumotning eskirishi
Registry entry mavjudligi endpoint ayni onda javob berishini kafolatlamaydi. Health check intervali, TTL va propagation kechikishi davomida client eskirgan manzilni olishi mumkin. Client-side load balancer retry va connection drainingni hisobga oladi, ammo bir xil non-idempotent so‘rovni ko‘r-ko‘rona takrorlamaydi. Instance o‘chirilganda avval registrydan chiqarish, yangi trafikni to‘xtatish va faol ulanishlarni tugatish tartibi qo‘llanadi. DNS asosidagi discoveryda resolver cache muddati ham shu hisobga kiradi.
Registry availability servisga kirish yo‘lining bir qismidir. Uning backupi va qayta tiklash tartibi control plane talablari bilan belgilanadi.
Bog‘liq tushunchalar
Service discovery, Health check, DNS SRV, Load balancing, Consensus, Service mesh, Workload identity