您的位置:首页 > 新闻 > 资讯 > 开发网页需要哪些技术_cms模板_网站推广平台搭建_腾讯企业qq

开发网页需要哪些技术_cms模板_网站推广平台搭建_腾讯企业qq

2024/10/6 10:35:46 来源:https://blog.csdn.net/u012094427/article/details/142717440  浏览:    关键词:开发网页需要哪些技术_cms模板_网站推广平台搭建_腾讯企业qq
开发网页需要哪些技术_cms模板_网站推广平台搭建_腾讯企业qq

引言

        在现今飞速发展的技术世界中,引用最新的工具和框架来提升项目的性能和可管理性至关重要。作为一名开发者,我最近在自己的AI知识库项目AntSK中集成了.NET Aspire,这为我的项目注入了新的活力。如果你还不清楚什么是.NET Aspire,那你将通过这篇文章充分了解它,并且学会如何将其集成到你的项目中,大大提高项目的分布式能力和可观察性。

什么是.NET Aspire?

        简单来说,.NET Aspire 是一种具有高度主见性和云原生的技术堆栈,专门为打造可观察的、生产就绪的分布式应用程序而设计。它通过一系列NuGet包提供支持,这些包解决了特定的云原生问题。

        云原生应用程序通常由小型、互连的微服务组成,而不是一个单一的代码库。这类应用程序充分利用了云基础架构的优势,如可扩展性、弹性和管理性。分布式应用程序需要在多个节点之间通信,以便为最终用户提供快速响应,而.NET Aspire正是为此类应用而生。

为什么选择.NET Aspire?

        选择.NET Aspire的原因很多,主要包括以下几点:

  1. 云原生特性:.NET Aspire特别适用于云原生应用,其设计理念就是为分布式系统提供可靠、可扩展和高性能的解决方案。

  2. 强大的观察能力:启用.NET Aspire后,可以通过仪表盘实时监控系统运行状态,方便进行性能调优和故障排查。

  3. 便捷的开发体验:通过NuGet包和相关工具的支持,使得集成和开发过程变得简单易行。

如何集成.NET Aspire?

        以下是我在AntSK项目中集成.NET Aspire的具体步骤。

安装.NET Aspire

        开始前,我们需要先安装.NET Aspire。可以通过以下命令确认当前已安装的项并进行安装:

dotnet workload listdotnet workload install aspiredotnet workload update

创建并配置项目

进入AntSK.AppHost目录,执行以下命令:

  1. 在项目中创建两个文件夹:

    • AntSK.AppHost

    • AntSK.ServiceDefaults

dotnet new aspire-apphost

    类似地,进入AntSK.ServiceDefaults目录,执行:

dotnet new aspire-servicedefaults

图片

图片

  1. 将这两个项目添加到解决方案中,并使用Host项目引用AntSK(这是我们的Blazor Web应用,也可以是API)。

注册服务

        在AntSK中,我们需要登记服务。使用以下代码:

builder.AddServiceDefaults();

        此操作将成功引入Aspire。

配置日志

        为了更好地监控和管理日志,可以使用Serilog。需要引入以下包:

<PackageReference Include="Serilog" Version="4.0.0-dev-02195" />
<PackageReference Include="Serilog.Sinks.Console" Version="5.1.0-dev-00943" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.1-dev-00972" />
<PackageReference Include="Serilog.Extensions.Logging" Version="8.0.1-dev-10391" />
<PackageReference Include="Serilog.Settings.Configuration" Version="8.0.1-dev-00583" />
<PackageReference Include="Serilog.Sinks.Seq" Version="8.0.0-dev-00302" />
<PackageReference Include="Serilog.Sinks.OpenTelemetry" Version="3.0.0-dev-00298" />

       通过配置文件来初始化Serilog:

Log.Logger = new LoggerConfiguration().ReadFrom.Configuration(builder.Configuration).CreateLogger();
var loggerFactory = LoggerFactory.Create(builder => {builder.ClearProviders();builder.AddSerilog();
});

        在appsettings.json中添加配置:

"Serilog": {"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.Seq", "Serilog.Sinks.File" ],"MinimumLevel": "Debug","WriteTo": [{ "Name": "Console" },{"Name": "OpenTelemetry","Args": {"Endpoint": "http://localhost:18889"}},{"Name": "File","Args": {"path": "D:\\git\\AntBlazor\\model\\logs\\log-.txt","rollingInterval": "Day","fileSizeLimitBytes": 10485760}}],"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ]
}

        还需要在Host项目的Properties/launchSettings.json进行修改:

{"$schema": "https://json.schemastore.org/launchsettings.json","profiles": {"http": {"commandName": "Project","dotnetRunMessages": true,"launchBrowser": true,"applicationUrl": "http://localhost:18888","environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development","DOTNET_ENVIRONMENT": "Development","DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:18889","DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20229","ASPIRE_ALLOW_UNSECURED_TRANSPORT": "true"}}}
}

        注意,ASPIRE_ALLOW_UNSECURED_TRANSPORT需要设置为true以便在本地调试时不使用https。

启动Aspire仪表盘

        完成上述步骤后,可以直接启动Host项目来启动Aspire仪表盘。

        然后运行 localhost:18888就可以打开仪表盘了。

Docker化应用

        为了在Docker中使用Aspire,我们的Dockerfile不需要修改,但需要在docker-compose文件中进行以下配置:

version: '3.8'
services:aspire-dashboard:container_name: aspire-dashboardimage: mcr.microsoft.com/dotnet/aspire-dashboard:8.0networks:- antskenvironment:- DOTNET_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS=true- ASPIRE_ALLOW_UNSECURED_TRANSPORT=true- DASHBOARD__OTLP__AUTHMODE=ApiKey- DASHBOARD__OTLP__PRIMARYAPIKEY=antsk- DASHBOARD__TELEMETRYLIMITS__MAXLOGCOUNT=1000- DASHBOARD__TELEMETRYLIMITS__MAXTRACECOUNT=1000- DASHBOARD__TELEMETRYLIMITS__MAXMETRICSCOUNT=1000- DASHBOARD__APPLICATIONNAME=AntSKDashBoardports:- 18888:18888- 18889:18889restart: unless-stoppedantsk:container_name: antskimage: registry.cn-hangzhou.aliyuncs.com/xuzeyu91/antsk:p0.3.8ports:- 5000:5000networks:- antskdepends_on:- antskpgrestart: alwaysenvironment:- ASPNETCORE_URLS=http://*:5000- ASPNETCORE_FORWARDEDHEADERS_ENABLED=true- OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EXCEPTION_LOG_ATTRIBUTES=true- OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EVENT_LOG_ATTRIBUTES=true- OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY=in_memory- OTEL_SERVICE_NAME=antsk- OTEL_EXPORTER_OTLP_ENDPOINT=http://aspire-dashboard:18889volumes:- ./appsettings.json:/app/appsettings.json - /AntSK/model:/app/model- /AntSK/model:/root/.cache/modelscope/hub/AI-ModelScope
networks:antsk:external: true

效果展示

        完成以上配置和部署后,您将能享受到.NET Aspire带来的强大功能,能够实时监控并分析你的应用性能。借助Aspire仪表盘,你不仅能查看详细的日志信息,还能通过各种性能指标来优化你的AI项目。

图片

        我们可以通过aspire仪表盘看到我们的log日志

图片

        以及项目的链路追踪

图片

图片

        包括还有各种各样的指标数据,这是非常不错的

总结

        通过这篇文章的介绍和指导,大家应该已经了解到.NET Aspire的强大之处以及如何将其无缝集成到你的AI项目中。.NET Aspire不仅可以提供优秀的分布式能力和监控功能,还能帮助开发者高效地进行开发和调试,是一个值得信赖的技术工具。希望大家能够通过实践,发挥Aspire的最大价值,让你的项目更上一层楼。

也欢迎大家关注我的开源项目,AntSK:

https://github.com/AIDotNet/AntSK

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com