0Pricing
Erlang OTP: Distributed & Fault-Tolerant Systems Programming · Ders

Düğümler Arasında Yük Dengeleme ve Yük Devretme

İşi Erlang düğümleri arasında eşit dağıtın ve dağıtık bir kümede otomatik yük devretmeyle hizmetlerin kullanılabilirliğini koruyun.

Düğümler Arasında Yük Dengeleme ve Yük Devretme, CoddyKit'te ücretsiz bir Erlang OTP: Distributed & Fault-Tolerant Systems Programming dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Erlang OTP: Distributed & Fault-Tolerant Systems Programming öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Erlang OTP: Distributed & Fault-Tolerant Systems Programming kursu toplamda 4 dersten oluşur.

Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.

Why Load Balancing?

In a cluster, spreading work across nodes prevents any one node from becoming a bottleneck and lets you scale by adding machines. Failover keeps the system available when a node dies.

Listing Cluster Nodes

A node sees its connected peers with nodes/0. This list is the pool you balance work over.

nodes().
% => ['worker1@host', 'worker2@host']

Round-Robin Dispatch

A simple strategy cycles through nodes in order, giving each an equal share of tasks.

pick_node(Index) ->
    Nodes = [node() | nodes()],
    lists:nth((Index rem length(Nodes)) + 1, Nodes).

Spawning on a Remote Node

spawn/4 can start a process on a chosen node, sending the work where you want it.

spawn(TargetNode, my_worker, run, [Task]).

The pg Process Groups

The pg module maintains named groups of processes spread across nodes. You can fetch group members and dispatch to them.

pg:join(workers, self()).
Members = pg:get_members(workers).

Choosing a Local Member

For low latency, prefer a worker on the local node when one exists, falling back to remote members otherwise.

case pg:get_local_members(workers) of
  [] -> pick_remote();
  Local -> hd(Local)
end.

Detecting Node Failure

Call net_kernel:monitor_nodes(true) to receive {nodedown, Node} messages when a peer disconnects, the trigger for failover.

net_kernel:monitor_nodes(true).
% receive {nodedown, Node} -> handle_failure(Node) end.

Failover Strategy

On nodedown, redistribute that node's pending work to surviving nodes and remove it from your dispatch pool.

handle_failure(Node) ->
    Tasks = pending_tasks(Node),
    [reassign(T) || T <- Tasks].

Stateless vs Stateful

Stateless work is trivial to reassign. Stateful work needs its state replicated (e.g. via Mnesia) so a survivor can resume it. Design state placement up front.

Avoiding Thundering Herds

When a node returns, do not dump all reconnection or rebalancing work at once. Stagger it to avoid overwhelming the cluster.

Putting It Together

A resilient setup: register workers in a pg group, dispatch round-robin with local preference, monitor nodes, and reassign work on failure with state backed by replicated storage.

Quick Check

Test your failover knowledge.

Recap

You learned distributed load balancing and failover.

  • Dispatch work across nodes/0 with round-robin and local preference
  • Use pg groups to track workers
  • Monitor nodes and reassign work on nodedown
  • Replicate state for stateful failover

Sıkça Sorulan Sorular

“Düğümler Arasında Yük Dengeleme ve Yük Devretme” dersi ücretsiz mi?

Evet — “Düğümler Arasında Yük Dengeleme ve Yük Devretme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Erlang OTP: Distributed & Fault-Tolerant Systems Programming kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Erlang OTP: Distributed & Fault-Tolerant Systems Programming kursu toplamda 4 dersten oluşur.

“Düğümler Arasında Yük Dengeleme ve Yük Devretme” dersinde ne öğreneceğim?

İşi Erlang düğümleri arasında eşit dağıtın ve dağıtık bir kümede otomatik yük devretmeyle hizmetlerin kullanılabilirliğini koruyun. Erlang OTP: Distributed & Fault-Tolerant Systems Programming ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Erlang OTP: Distributed & Fault-Tolerant Systems Programming öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Erlang OTP: Distributed & Fault-Tolerant Systems Programming, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Düğümler Arasında Yük Dengeleme ve Yük Devretme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Erlang OTP: Distributed & Fault-Tolerant Systems Programming dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Erlang OTP: Distributed & Fault-Tolerant Systems Programming dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Ağ Bölünmelerini İşleme
  2. ETS ve Mnesia ile Dağıtık Veri
  3. Ölçeklenebilirlik ve Dayanıklılık Tasarımı
  4. Düğümler Arasında Yük Dengeleme ve Yük Devretme
← Erlang OTP: Distributed & Fault-Tolerant Systems Programming Sayfasına Dön