• About
  • Privacy Policy
  • Disclaimer
  • Contact
TomorrowPosT
  • Home
  • Computers
    • Gaming
  • Gear
    • Apple
    • Mobile
  • Microsoft
    • Software & Apps
  • Review
    • Security
  • Tech for Business
  • Tech News
  • News
  • Termini e condizioni
No Result
View All Result
  • Home
  • Computers
    • Gaming
  • Gear
    • Apple
    • Mobile
  • Microsoft
    • Software & Apps
  • Review
    • Security
  • Tech for Business
  • Tech News
  • News
  • Termini e condizioni
No Result
View All Result
TomorrowPost
No Result
View All Result

Microservizi orchestranti con DAPR: un approccio unificato

Michele by Michele
21/05/2025
Home Software & Apps
Condividi su FacebookCondividi su WhatsappCondividi su Twitter


Introduzione

Le moderne architetture di software program stanno abbracciando sempre più microservizi per migliorare la scalabilità, la flessibilità e la resilienza. Tuttavia, man mano che il numero di sistemi si espande, la gestione della comunicazione inter-servizio, della persistenza dei dati, della messaggistica guidata dagli eventi e della sicurezza diventa più complessa. Inoltre, poiché una scala di prodotti, le organizzazioni spesso sviluppano inavvertitamente forti dipendenze da fornitori di database specifici, middleware di messaggistica o fornitori di cloud. Questo accoppiamento stretto rende i cambiamenti futuri impegnativi, che spesso richiedono un ampio refactoring.

Dapr (Runtime dell’applicazione distribuita) Offre un’astrazione unificata per la gestione di queste preoccupazioni, consentendo ai microservizi di interagire con database, code di messaggi, API e segreti in modo indipendente dal cloud e indipendente dall’infrastruttura.

Una rappresentazione visiva di DAPR che consente l'interazione tra database, code di messaggi, API e segreti, che consente un'astrazione unificata.

Figura 1: come funziona DAPR

Questo articolo esplora come DAPR semplifica Orchestrazione dei microservizi, utilizzando un sistema di gestione degli ordini (OMS) come esempio. Dimostreremo:

  • Accesso al database per la gestione dello stato
  • Messaggi guidati da eventi Per l’elaborazione dei dati attraverso i servizi
  • Invocazione da servizio a servizio per comunicazione inter-servizio
  • Gestione sicura dei segreti per la gestione delle credenziali

Un diagramma di come DAPR semplifica l'orchestrazione dei microservizi consentendo l'accesso al database, la messaggistica basata su eventi, l'invocazione del servizio a servizio e la gestione sicura dei segreti.

Figura 2: come DAPR semplifica l’orchestrazione dei microservizi

Gestire lo stato senza accoppiamento stretto

Uno dei fondamentali esigenze nei microservizi è una conservazione persistente. Invece di utilizzare un SDK di database legato a un supplier specifico, DAPR fornisce un’API di gestione dello stato che funziona su più database come PostgreSQL, DynamoDB e Redis.

Configurazione

Per abilitare l’accesso al database, configuriamo DAPR per utilizzare AWS DynamoDB Creando un file componente come visualizzato di seguito:

apiVersion: dapr.io/v1alpha1
form: Element
metadata:
  identify: orderstatestore
  namespace: default
spec:
  sort: state.aws.dynamodb
  model: v1
  metadata:
  - identify: area
    worth: us-east-1
  - identify: desk
    worth: OrdersTable
  - identify: partitionKey
    worth: orderId

Questa configurazione cube a DAPR di utilizzare DynamoDB come backend di archiviazione.

Salvataggio e recupero dei dati tramite API DAPR

Invece di integrarsi direttamente con AWS SDKSIl nostro servizio di ordine interagisce con il database tramite API di stato di DAPR:

import io.dapr.consumer.DaprClient;
import io.dapr.consumer.DaprClientBuilder;
import org.springframework.stereotype.Service;

@Service
public class OrderService {

    personal static ultimate String STATE_STORE_NAME = "orderstatestore";
    personal ultimate DaprClient daprClient;

    public OrderService() {
        this.daprClient = new DaprClientBuilder().construct();
    }

    public void createOrder(Order order) {
      	//Blocking (Synchronous) Method
        daprClient.saveState(STATE_STORE_NAME, order.getOrderId(), order).block();
    }

    public Order getOrder(String orderId) {
        return daprClient.getState(STATE_STORE_NAME, orderId, Order.class).block().getValue();
    }
}

Utilizzando l’API di stato di DAPR, il database sottostante è astratto, consentendo la migrazione senza soluzione di continuità. Ciò elimina la necessità di configurazioni specifiche di AWS all’interno del codice dell’applicazione, consentendo agli sviluppatori di cambiare database senza modificare la logica aziendale.

Pub/Sub Messaging: elaborazione dei dati basati su eventi

Molti microservizi seguono architetture basate sugli eventi in cui i servizi comunicano tramite dealer di messaggi. Invece di integrarsi direttamente con Kafka, Rabbitmq o AWS SNS/SQSDAPR fornisce un pub/API generico.

Configurazione

Per abilitare la messaggistica guidata da eventi, configuriamo DAPR per utilizzare SNS AWS come visto di seguito:

apiVersion: dapr.io/v1alpha1
form: Element
metadata:
  identify: orderspubsub
  namespace: default
spec:
  sort: pubsub.aws.sns
  model: v1
  metadata:
  - identify: area
    worth: us-east-1
  - identify: subject
    worth: orderCreatedTopic

Eventi editoriali

Una volta creato un ordine, pubblichiamo un evento su AWS SNS senza usare direttamente AWS SDK. Ciò consente alle applicazioni a valle di attivare processi successivi, come la spedizione e la fatturazione.

import io.dapr.consumer.DaprClient;
import io.dapr.consumer.DaprClientBuilder;
import org.springframework.stereotype.Service;

@Service
public class OrderEventPublisher {

    personal ultimate DaprClient daprClient;

    public OrderEventPublisher() {
        this.daprClient = new DaprClientBuilder().construct();
    }

    public void publishOrderCreatedEvent(Order order) {
      	//Publish as Fan-out message for level to level use invokeMethod
        daprClient.publishEvent("orderspubsub", "orderCreatedTopic", order).block();
    }
}

Eventi di abbonamento

Crea un file di abbonamento DAPR (order-subscription.yaml) in modo che il servizio possa ascoltare l’evento creato dall’ordine:

apiVersion: dapr.io/v1alpha1
form: Subscription
metadata:
  identify: order-subscription
spec:
  pubsubname: orderspubsub
  subject: orderCreatedTopic
  route: /orders
scopes:
  - payment-service

Il servizio di pagamento ascolta per gli eventi dell’ordine:

import org.springframework.net.bind.annotation.*;

@RestController
public class PaymentEventListener {

    @Matter(identify = "orderCreatedTopic", pubsubName = "orderspubsub")
    @PostMapping("/orders")
    public void handleOrderEvent(@RequestBody Order order) {
        System.out.println("Processing fee for Order ID: " + order.getOrderId());
      	// Implement additional processing (e.g., triggering delivery)
    }
}

Questo disaccoppia i servizi di ordine e pagamento, consentendo loro di ridimensionare in modo indipendente.

Invocazione del servizio

Invece di utilizzare URL con codice rigido come le API di riposo tradizionali, DAPR consente ai microservizi di comunicare in modo dinamico.

Il servizio di pagamento recupera i dettagli dell’ordine tramite DAPR senza conoscere il proprio nome host/IP esatto:

import io.dapr.consumer.DaprClient;
import io.dapr.consumer.DaprClientBuilder;
import org.springframework.stereotype.Service;

@Service
public class PaymentService {

    personal ultimate DaprClient daprClient;

    public PaymentService() {
        this.daprClient = new DaprClientBuilder().construct();
    }

    public Order getOrderDetails(String orderId) {
        return daprClient.invokeMethod("orderservice", "orders/" + orderId, null, Order.class).block();
    }
}

I servizi non sono necessari per gestire la scoperta o la gestione degli indirizzi hardcoded, poiché DAPR si occupa automaticamente del networking.

Gestione dei segreti

Invece di archiviare le credenziali nelle variabili di ambiente o nelle proprietà dell’applicazione, DAPR fornisce un’API di gestione dei segreti, consentendo un recupero sicuro di segreti da supplier come AWS Secrets and techniques Supervisor o Hashicorp Volta.

Configurazione

Di seguito è riportato come configurarlo usando DAPR:

apiVersion: dapr.io/v1alpha1
form: Element
metadata:
  identify: aws-secrets
  namespace: default
spec:
  sort: secretstores.aws.secretsmanager
  model: v1
  metadata:
  - identify: area
    worth: us-east-1

Recreti di recupero

Il servizio di ordine recupera in modo sicuro le credenziali tramite API del negozio segreto di DAPR:

import io.dapr.consumer.DaprClient;
import io.dapr.consumer.DaprClientBuilder;
import org.springframework.stereotype.Service;

import java.util.Map;

@Service
public class SecretService {

    personal ultimate DaprClient daprClient;

    public SecretService() {
        this.daprClient = new DaprClientBuilder().construct();
    }

    public Map getDatabaseSecrets() {
        return daprClient.getSecret("aws-secrets", "dbPassword").block();
    }
}

Ciò garantisce che le credenziali siano conservate in modo sicuro e accessibili solo quando necessario.

Conclusione

DAPR semplifica l’orchestrazione di microservizi con un’astrazione unificata, agnostica cloud per l’accesso al database, la messaggistica, l’invocazione del servizio e la gestione dei segreti. Supporta le architetture poliglotte, consentendo un’interazione senza soluzione di continuità in diversi linguaggi di programmazione senza dipendenze infrastrutturali. Integrando i componenti del database e della messaggistica, gli sviluppatori possono costruire sistemi scalabili e mantenibili senza blocco dei fornitori. Con caratteristiche combine come interruttori, tentativi e osservabilità, DAPR migliora la resilienza, riduce la complessità e consente ai servizi di evolversi in modo indipendente. Estrattando le preoccupazioni sulle infrastrutture, consente ai group di concentrarsi sulla logica aziendale, accelerare lo sviluppo e supportare sistemi scalabili e distribuiti in qualsiasi ambiente cloud o ibrido.

Tags: approccioconDAPRmicroserviziorchestrantiunificato
Michele

Michele

Next Post
Recensione di Roborock Saros Z70: un ottimo vuoto robotic con un braccio a volte utile

Recensione di Roborock Saros Z70: un ottimo vuoto robotic con un braccio a volte utile

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Recommended.

Ecco il primo sguardo nel mondo reale di Apple Carplay Extremely

Ecco il primo sguardo nel mondo reale di Apple Carplay Extremely

15/05/2025
Scegliere la piattaforma cloud giusta

Scegliere la piattaforma cloud giusta

10/03/2025

Trending.

Starcraft 2 hacker che costringono i giocatori a guardare video di tiro

Starcraft 2 hacker che costringono i giocatori a guardare video di tiro

23/04/2025
Distribuzione di piattaforme di intelligenza artificiale nell’istruzione superiore per risultati migliori

Distribuzione di piattaforme di intelligenza artificiale nell’istruzione superiore per risultati migliori

24/04/2025

TomorrowPost

Welcome to Tomorrow Post – your trusted source for the latest in computers, gaming, tech gear, Microsoft, software, cybersecurity, and much more! Our mission is simple: to provide technology enthusiasts, professionals, and business leaders with accurate, insightful, and up-to-date information that helps them navigate the ever-evolving world of technology.

Categorie

  • Apple
  • Computers
  • Gaming
  • Gear
  • Microsoft
  • Mobile
  • News
  • Review
  • Security
  • Software & Apps
  • Tech for Business
  • Tech News

Recent News

Purerat Malware Spikes 4x nel 2025, dispiegando PureLogs per colpire le imprese russe

Purerat Malware Spikes 4x nel 2025, dispiegando PureLogs per colpire le imprese russe

21/05/2025
Asrock evidenzia PSU e monitor da gioco a Computex 2025

Asrock evidenzia PSU e monitor da gioco a Computex 2025

21/05/2025
  • About
  • Privacy Policy
  • Disclaimer
  • Contact

© 2025- https://tomorrowpost.net- All Rights Reserved

No Result
View All Result
  • Home
  • Computers
    • Gaming
  • Gear
    • Apple
    • Mobile
  • Microsoft
    • Software & Apps
  • Review
    • Security
  • Tech for Business
  • Tech News
  • News
  • Termini e condizioni

© 2025- https://tomorrowpost.net- All Rights Reserved