0Pricing
Erlang OTP: Distributed & Fault-Tolerant Systems Programming · Leçon

Communication et configuration des nœuds

Apprenez à configurer et à connecter plusieurs nœuds Erlang, en comprenant le protocole de distribution sous-jacent et les mécanismes de sécurité

Communication et configuration des nœuds est une leçon Erlang OTP: Distributed & Fault-Tolerant Systems Programming gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Erlang OTP: Distributed & Fault-Tolerant Systems Programming, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Erlang OTP: Distributed & Fault-Tolerant Systems Programming comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Welcome to Distributed Erlang

Erlang shines in building distributed systems! It allows multiple Erlang Virtual Machines (VMs), called nodes, to communicate seamlessly.

This lesson introduces how to set up and connect these nodes, forming the foundation for fault-tolerant and scalable applications.

Understanding Erlang Node Names

Every Erlang node needs a unique name to identify itself in a distributed system. There are two types of names:

  • Short names (e.g., mynode): Used for nodes on the same local machine or network segment. Started with -sname.
  • Long names (e.g., node1@example.com): Essential for nodes distributed across different hosts and networks. Requires a fully qualified domain name (FQDN) and started with -name.

We'll primarily use short names for local examples.

The Erlang Cookie: Shared Secret

For two Erlang nodes to communicate, they must share a common secret key called the Erlang cookie. Think of it like a password for node-to-node authentication.

  • If nodes have different cookies, they cannot connect.
  • The cookie is a string (e.g., mysecretcookie).
  • It's crucial for security: keep your cookies secret and generate strong ones!

Starting Your First Node

Let's start an Erlang node with a short name and a cookie. Open your terminal and run:

erl -sname alpha -setcookie myappsecret

Once the Erlang shell loads, you can check your node's name and cookie:

  • node(). (shows the node's full name)
  • erlang:get_cookie(). (shows the cookie)

EPMD: The Port Mapper Daemon

When an Erlang node starts, it registers itself with a local process called EPMD (Erlang Port Mapper Daemon).

EPMD's job is to keep track of which Erlang nodes are running on the local host and which TCP ports they are listening on. When one node wants to connect to another on the same machine, it asks EPMD for the target node's port number.

You can see registered nodes with epmd -names in a separate terminal.

Connecting Two Local Nodes

Now, start a second node in another terminal. Make sure to use the same cookie:

erl -sname beta -setcookie myappsecret

From the alpha node's shell, try to ping beta:

net_adm:ping(beta@~s).

Replace ~s with your machine's hostname (e.g., net_adm:ping(beta@localhost).). If it returns pong, they are connected! You can also use nodes(). to see connected nodes.

Demonstrating Node Identity

This simple Erlang module helps identify the current node. It's a full program that reports its own node name.

Save this as node_id.erl, compile it in your Erlang shell (c(node_id).), and then call node_id:print_name(). to see the output.

-module(node_id).
-export([print_name/0]).

print_name() ->
    io:format("Current node name: ~p~n", [node()]).

Long Node Names for Remote Hosts

For connecting nodes across different physical machines or networks, you must use long node names with the -name flag. This requires using the node's fully qualified domain name (FQDN) or IP address.

Example: erl -name node1@server.example.com -setcookie myappsecret

Using long names ensures that nodes can be uniquely identified and reached over a wider network.

Basic Security Considerations

While the Erlang cookie provides basic authentication, consider these points:

  • Strong Cookies: Use long, random strings for production environments.
  • Firewall Rules: Configure firewalls to allow EPMD (port 4369) and the dynamic Erlang node ports to communicate only between trusted hosts.
  • TLS: For sensitive data or untrusted networks, use Transport Layer Security (TLS) for encrypted communication (covered in a later lesson).

Quick Check on Node Setup

You've learned about Erlang nodes, naming, cookies, and EPMD. Let's test your understanding!

Recap: Node Communication Fundamentals

You've taken the first step into distributed Erlang! We covered:

  • Erlang Nodes: Separate Erlang VMs that can communicate.
  • Node Names: -sname for local, -name for remote (FQDN).
  • Erlang Cookie: A shared secret for node authentication.
  • EPMD: The daemon for local node discovery.
  • Connecting Nodes: Using net_adm:ping/1 to establish communication.

Next, we'll explore how these connected nodes can actually talk to each other!

Questions Fréquemment Posées

La leçon « Communication et configuration des nœuds » est-elle gratuite ?

Oui — le texte complet de « Communication et configuration des nœuds » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Erlang OTP: Distributed & Fault-Tolerant Systems Programming, passe à CoddyKit PRO. Le cours Erlang OTP: Distributed & Fault-Tolerant Systems Programming comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Communication et configuration des nœuds » ?

Apprenez à configurer et à connecter plusieurs nœuds Erlang, en comprenant le protocole de distribution sous-jacent et les mécanismes de sécurité Tu pratiques Erlang OTP: Distributed & Fault-Tolerant Systems Programming avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Erlang OTP: Distributed & Fault-Tolerant Systems Programming ?

Aucune expérience préalable n'est requise. Erlang OTP: Distributed & Fault-Tolerant Systems Programming sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Communication et configuration des nœuds » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Erlang OTP: Distributed & Fault-Tolerant Systems Programming ?

Oui. Chaque leçon Erlang OTP: Distributed & Fault-Tolerant Systems Programming inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Communication et configuration des nœuds
  2. Appels de procédures distantes (RPC)
  3. Enregistrement global des processus
  4. Sécurité de la distribution et cookies
← Retour à Erlang OTP: Distributed & Fault-Tolerant Systems Programming