Bosh sahifa Wiki Heartbeat

Heartbeat

Heartbeat — komponent yoki ulanishning faol ekanini ko‘rsatish uchun davriy yuboriladigan kichik signal yoki xabardir. Distributed tizim, message broker, cluster membership va WebSocket connectionlarda peer uzoq vaqt jim qolganida nosozlikni aniqlashga yordam beradi. Heartbeat faqat signal kelgan nuqtagacha livenessni ko‘rsatadi, servisning barcha funksiyasi sog‘lomligini emas.

Interval va timeout

Sender ma’lum intervalda heartbeat yuboradi. Receiver bir yoki bir nechta signalni belgilangan timeout ichida olmasa peer ni unavailable yoki suspect deb belgilaydi. Timeout intervaldan katta bo‘lishi, network jitter va scheduler pause ni hisobga olishi kerak.

Juda qisqa interval failure ni tez topadi, ammo tarmoq va CPU xarajatini oshiradi hamda vaqtinchalik kechikishni nosozlik deb qabul qiladi. Juda uzun interval dead connection va resursni uzoq ushlab turadi. Talab recovery va false-positive narxiga qarab tanlanadi.

Transport keepalive bilan farqi

TCP keepalive kernel darajasida uzoq jim connection peerga yetishini tekshirishi mumkin. Application heartbeat esa protocol orqali request loop, broker session yoki biznes worker ishlayotganini ko‘rsatadi. Process event loopi qotgan bo‘lsa TCP stack ACK qaytarishi mumkin, ammo application heartbeat kelmaydi.

WebSocket ping/pong protocol control frame, custom JSON heartbeat esa application message bo‘lishi mumkin. Ikkalasini aralashtirish duplicate trafik va turli timeoutlar keltiradi. Qaysi qatlam ownershipi aniq bo‘ladi.

Failure detector

Asinxron tarmoqda timeout peer aniq o‘lganini isbotlamaydi; packet kechikishi yoki partition ham sabab bo‘lishi mumkin. Failure detector suspicion beradi. Cluster leader yoki lease mexanizmi split-brainni oldini olish uchun quorum va epoch bilan ishlaydi.

Phi accrual detector interval tarixidan ehtimollik suspicion score hisoblaydi. Fixed timeoutdan moslashuvchanroq, ammo uzun GC pause va trafik o‘zgarishiga tuning kerak. Heartbeat timestamp uchun clock synchronizationga haddan tashqari tayanmasdan local receive vaqt ishlatiladi.

Broker va consumer

Message broker heartbeat client connectioni tirikligini aniqlaydi. Client blocking ish bilan event loopni band qilsa heartbeat yuborolmay, broker uni uzishi mumkin. Uzoq message processing network I/O threadidan ajratiladi yoki protocol deadlinega moslashtiriladi.

Consumer group heartbeat membershipni saqlaydi. Heartbeat yo‘qolsa rebalance partitionni boshqa consumerga beradi. Eski consumer hali ish bajarayotgan bo‘lsa duplicate processing yuz beradi; generation va fencing eski ownershipni rad etadi.

Monitoring

Heartbeatning o‘zini har intervalda info logga yozish katta shovqin beradi. Last-seen time, missed count va state transition metric sifatida kuzatiladi. Alert birgina missing packetda emas, timeout va dependency kontekstida ishga tushadi.

Heartbeat payloadga credential yoki katta telemetry qo‘shilmaydi. Soxta signal peer ni tirik ko‘rsatmasligi uchun authenticated channel ishlatiladi. Replay himoyasi sequence yoki session context bilan ta’minlanadi.

Mobil va energiya

Mobil qurilmada tez heartbeat radio ni faol saqlab, batareya sarfini oshiradi. NAT mappingni saqlash intervali carrier va routerga bog‘liq, lekin juda tez universal qiymat tanlash samarasiz. Operating system background rejimda timerlarni birlashtirishi yoki networkni to‘xtatishi mumkin.

Push notification yoki reconnect-on-demand ayrim ilovada doimiy socket heartbeataridan tejamkorroq. Server foreground va background client uchun turli timeout semantikasini biladi. Background clientni darhol offline deb ko‘rsatish mahsulot ma’nosiga mos kelmasligi mumkin.

Bog‘liq tushunchalar

Keepalive, Liveness probe, Failure detector, Timeout, Lease, Consumer group, WebSocket ping