Rechercher

Ce contenu n'est pas disponible dans la langue sélectionnée.

Chapter 4. Example application using a fallback function with the circuit breaker add-on

download PDF

You can define a fallback function that you can use with the circuit breaker add-on in your Node.js applications. A fallback function specifies an action that is performed whenever a call to a remote service fails. For example, you can use a fallback function to send a customized message about service failures to the client. When the circuit breaker has an open state, the fallback function is executed continually for each attempt to contact the remote service.

4.1. Fallback method supplied with the circuit breaker add-on

You can use the fallback method of the circuit breaker object to add your defined fallback function to the circuit breaker. If the call to the remote service fails after the circuit breaker fire method is executed, the fallback function is then called automatically.

For more information about the fallback method and other member types that you can use with the circuit breaker add-on, see the Circuit Breaker Add-on 5.0.0 API Documentation.

4.2. Example application code that defines a fallback function

This example is based on the greeting-service that sends calls to the remote name-service that might fail. This example shows how to define a fallback function that prints the following message to the web console: This is the fallback function.

...

// Import the circuit breaker add-on
const Opossum = require('@redhat/opossum');

...

// Create a new circuit breaker instance and pass the
// remote nameService as its first parameter
const circuit = new Opossum(nameService, circuitOptions);

// Define a fallback function that will be called when
// the remote nameService fails
function fallback(result) {
    console.log('This is the fallback function', result);
}

// Use the circuit breaker's fallback method to add the
// fallback function to the circuit breaker instance
circuit.fallback(fallback);

...

// Greeting API
app.get('/api/greeting', (request, response) => {
  // Use the circuit breaker’s fire method to execute the call
  // to the name service
  circuit.fire(`${nameServiceHost}/api/name`).then(name => {
    response.send({ content: `Hello, ${name}`, time: new Date() });
  }).catch(console.error);
});

...

Additional resources

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.