integración de .NET AspireNATS
Incluye:integración de hospedaje y Client integración
NATS es un sistema de mensajería distribuido de alto rendimiento y seguro. La integración de .NET AspireNATS permite conectarse a instancias de NATS existentes o crear nuevas instancias a partir de .NET con la imagen de contenedor docker.io/library/nats
.
Integración de hospedaje
NATS la integración de alojamiento para .NET Aspire modela un NATSserver como el tipo de NatsServerResource. Para acceder a este tipo, instale el paquete NuGet 📦Aspire.HostingNats en el proyecto de host de la aplicación y, a continuación, agréguelo con el generador.
-
CLI de
- PackageReference
dotnet add package Aspire.Hosting.Nats
Para obtener más información, consulte dotnet add package o Administrar las dependencias del paquete en las aplicaciones .NET.
Agregar NATSserver recurso
En su proyecto de host de aplicaciones, invoque AddNats en un objeto builder
para agregar un recurso NATSserver.
var builder = DistributedApplication.CreateBuilder(args);
var nats = builder.AddNats("nats");
builder.AddProject<Projects.ExampleProject>()
.WithReference(nats);
// After adding all resources, run the app...
Cuando .NET.NET Aspire agrega una imagen de contenedor al host de la aplicación, como se muestra en el ejemplo anterior con la imagen de docker.io/library/nats
, crea una nueva instancia de NATSserver en el equipo local. Se agrega una referencia a la NATSserver (la variable nats
) en el ExampleProject
.
El método WithReference configura una conexión en el ExampleProject
denominado "nats"
. Para obtener más información, consulte ciclo de vida de los recursos de contenedor.
Propina
Si prefiere conectarse a un NATSserverexistente, llame a AddConnectionString en su lugar. Para obtener más información, vea Hacer referencia a los recursos existentes.
Agregar NATSserver recurso con JetStream
Para agregar el NATS JetStream al recurso NATSserver, llame al método WithJetStream:
var builder = DistributedApplication.CreateBuilder(args);
var nats = builder.AddNats("nats");
.WithJetStream();
builder.AddProject<Projects.ExampleProject>()
.WithReference(nats);
// After adding all resources, run the app...
La funcionalidad NATS JetStream proporciona un motor de persistencia integrado denominado JetStream que permite almacenar y reproducir mensajes más adelante. Opcionalmente, puede proporcionar un parámetro srcMountPath
para especificar la ruta de acceso al directorio de datos de JetStream en el equipo host (la ruta de acceso de montaje proporcionada se asigna al argumento -sd
del contenedor).
Añadir recurso NATSserver con volumen de datos
Para agregar un volumen de datos al recurso de NATSserver, llame al método WithDataVolume en el recurso NATSserver:
var builder = DistributedApplication.CreateBuilder(args);
var nats = builder.AddNats("nats");
.WithDataVolume(isReadOnly: false);
builder.AddProject<Projects.ExampleProject>()
.WithReference(nats);
// After adding all resources, run the app...
El volumen de datos se utiliza para guardar los datos NATSserver fuera del ciclo vital de su contenedor. El volumen de datos se monta en la ruta de acceso /var/lib/nats
en el contenedor NATSserver. Un nombre se genera de forma aleatoria a menos que proporcione un conjunto del parámetro name
. Para obtener más información sobre los volúmenes de datos y los detalles sobre por qué se prefieren a enlazar montajes, consulte Docker documentos: Volúmenes.
Adición de NATSserver recurso con montaje de enlace de datos
Para agregar un montaje de enlace de datos al recurso de NATSserver, llame al método WithDataBindMount:
var builder = DistributedApplication.CreateBuilder(args);
var nats = builder.AddNats("nats");
.WithDataBindMount(
source: @"C:\NATS\Data",
isReadOnly: false);
builder.AddProject<Projects.ExampleProject>()
.WithReference(nats);
// After adding all resources, run the app...
Importante
Los montajes de datos de enlace tienen una funcionalidad limitada en comparación con los volúmenes de , que ofrecen un mejor rendimiento, portabilidad y seguridad, lo que los hace más adecuados para entornos de producción. Sin embargo, los montajes de unión permiten el acceso directo y la modificación de archivos en el sistema host, lo cual es ideal para el desarrollo y las pruebas donde se requieren cambios en tiempo real.
Los montajes de enlace de datos dependen del sistema de archivos del equipo host para conservar los datos de NATSserver en los reinicios del contenedor. El punto de montaje de enlace de datos se monta en la ruta de acceso C:\NATS\Data
en Windows (o /NATS/Data
en Unix) en la máquina host dentro del contenedor NATSserver. Para obtener más información sobre los montajes de enlace de datos, consulte Docker documentos: Enlazar montajes.
Comprobaciones de salud de integración de hospedaje
La integración de hospedaje de NATS agrega automáticamente una comprobación de estado para el recurso de NATSserver. La comprobación de estado comprueba que el NATSserver se está ejecutando y que se puede establecer una conexión con él.
La integración de hospedaje se basa en el 📦 AspNetCore.HealthChecks.Nats paquete NuGet.
integración de Client
Para empezar a trabajar con la integración de .NET AspireNATSclient, instale el 📦Aspire.NATSpaquete NuGet de .Net en el proyecto que consume client, o sea, el proyecto de la aplicación que usa el NATSclient. La integración NATSclient registra una instancia de INatsConnection que se puede usar para interactuar con NATS.
-
CLI de
- PackageReference
dotnet add package Aspire.NATS.Net
Agregar NATSclient
En el archivo Program.cs del proyecto que consume client, llame al método de extensión AddNatsClient en cualquier IHostApplicationBuilder para registrar un INatsConnection
para su uso a través del contenedor de inserción de dependencias. El método toma un parámetro de nombre de conexión.
builder.AddNatsClient(connectionName: "nats");
Propina
El parámetro connectionName
debe coincidir con el nombre usado al agregar el recurso NATSserver en el proyecto host de la aplicación. Para obtener más información, consulte Agregar NATSserver recurso.
A continuación, puede recuperar la instancia de INatsConnection
mediante la inserción de dependencias. Por ejemplo, para recuperar el client de un servicio:
public class ExampleService(INatsConnection connection)
{
// Use connection...
}
Para obtener más información sobre la inserción de dependencias, consulte .NET inserción de dependencias.
Añadir códigos NATSyclient predefinidos
Puede haber situaciones en las que quiera registrar varias instancias de INatsConnection
con nombres de conexión diferentes. Para registrar clientes de NATS con clave, llame al método AddKeyedNatsClient:
builder.AddKeyedNatsClient(name: "chat");
builder.AddKeyedNatsClient(name: "queue");
A continuación, puede recuperar las instancias de IConnection
mediante la inyección de dependencias. Por ejemplo, para recuperar la conexión de un servicio de ejemplo:
public class ExampleService(
[FromKeyedServices("chat")] INatsConnection chatConnection,
[FromKeyedServices("queue")] INatsConnection queueConnection)
{
// Use connections...
}
Para obtener más información sobre los servicios con claves, consulte .NET inserción de dependencias: Servicios con claves.
Configuración
La integración de .NET AspireNATS proporciona varias opciones para configurar la conexión NATS en función de los requisitos y convenciones del proyecto.
Uso de una cadena de conexión
Proporcione el nombre de la cadena de conexión al llamar a builder.AddNatsClient
:
builder.AddNatsClient(connectionName: "nats");
La cadena de conexión se obtiene de la sección de configuración del ConnectionStrings
.
{
"ConnectionStrings": {
"nats": "nats://nats:4222"
}
}
Consulte la documentación de ConnectionString para obtener más información sobre cómo dar formato a esta cadena de conexión.
Uso de proveedores de configuración
La integración de los componentes .NET AspireyNATS admite Microsoft.Extensions.Configuration. Carga el NatsClientSettings desde la configuración usando la clave Aspire:Nats:Client
. El fragmento de código siguiente es un ejemplo de un archivo appsettings.json que configura algunas de las opciones:
{
"Aspire": {
"Nats": {
"Client": {
"ConnectionString": "nats://nats:4222",
"DisableHealthChecks": true,
"DisableTracing": true
}
}
}
}
Para obtener el esquema de integración completo de NATSclientJSON, consulte Aspire.NATS.Net/ConfigurationSchema.json.
Uso de delegados insertados
Pase el delegado Action<NatsClientSettings> configureSettings
para configurar algunas o todas las opciones en línea, por ejemplo, para deshabilitar las comprobaciones de estado desde el código.
builder.AddNatsClient(
"nats",
static settings => settings.DisableHealthChecks = true);
NATS en el manifiesto de .NET Aspire
NATS no está incluido en el manifiesto de implementación de .NET Aspire. Se recomienda configurar una NATSserver de producción segura fuera de .NET Aspire.
verificaciones de salud de integración de Client
De forma predeterminada, las integraciones .NET.NET Aspire habilitan comprobaciones de estado para todos los servicios. Para obtener más información, consulte .NET.NET Aspire integrations overview.
La integración de .NET AspireNATS controla lo siguiente:
- Se integra con el punto de conexión HTTP de
/health
, que especifica que todas las comprobaciones de estado registradas deben pasar para que la aplicación se considere lista para aceptar el tráfico.
Observabilidad y telemetría
.NET .NET Aspire integraciones establecen automáticamente las configuraciones de registro, seguimiento y métricas, que a veces se conocen como los pilares de la observabilidad. Para obtener más información sobre la observabilidad de integración y la telemetría, consulte información general sobre las integraciones de .NET.NET Aspire. En función del servicio de respaldo, algunas integraciones solo pueden admitir algunas de estas características. Por ejemplo, algunas integraciones admiten el registro y el seguimiento, pero no las métricas. Las características de telemetría también se pueden deshabilitar mediante las técnicas presentadas en la sección Configuración.
Registro
La integración de .NET AspireNATS usa las siguientes categorías de registro:
NATS
Rastreo
La integración de .NET AspireNATS emite las siguientes actividades de rastreo:
NATS.Net