当前位置: 首页 > news >正文

东莞官方网站温州seo收费

东莞官方网站,温州seo收费,网站建设工作自策划实施以来,pascal建设网站文章目录 项目地址一、OpenTelemetry1.1 配置OpenTelemetry1. 服务添加2. 添加服务标识3. 添加请求的标识4. 添加中间价 二、Rabbit MQ2.1 配置Rabbit MQ1. docker-compose2. 添加Rabbit MQ的Connect String 2.2 替换成Rabbit MQ1. 安装所需要的包2. 使用 三、API Gateways3.1 …

文章目录

  • 项目地址
  • 一、OpenTelemetry
    • 1.1 配置OpenTelemetry
      • 1. 服务添加
      • 2. 添加服务标识
      • 3. 添加请求的标识
      • 4. 添加中间价
  • 二、Rabbit MQ
    • 2.1 配置Rabbit MQ
      • 1. docker-compose
      • 2. 添加Rabbit MQ的Connect String
    • 2.2 替换成Rabbit MQ
      • 1. 安装所需要的包
      • 2. 使用
  • 三、API Gateways
    • 3.1 创建Gateway
      • 1. 配置docker-compose
      • 2. 添加各种服务
      • 3. 添加jwt配置
      • 4. 添加日志追踪
      • 5. 配置appsettings
      • 6. Yarp反向代理设置


项目地址

  • 教程作者:
  • 教程地址:
  • 代码仓库地址:
  • 所用到的框架和插件:
dbt 
airflow

一、OpenTelemetry

1.1 配置OpenTelemetry

1. 服务添加

  1. namespace Evently.Common.Infrastructure; 配置
        services.AddOpenTelemetry().ConfigureResource(resource => resource.AddService(serviceName)).WithTracing(tracing =>{tracing.AddAspNetCoreInstrumentation().AddHttpClientInstrumentation().AddEntityFrameworkCoreInstrumentation().AddRedisInstrumentation().AddNpgsql().AddSource(MassTransit.Logging.DiagnosticHeaders.DefaultListenerName);tracing.AddOtlpExporter();});

2. 添加服务标识

在这里插入图片描述

  1. 创建服务标识
namespace Evently.Api.OpenTelemetry;public static class DiagnosticsConfig
{public const string ServiceName = "Evently.Api";
}
  1. program里注册
    在这里插入图片描述

3. 添加请求的标识

  • 在RequestLoggingPipelineBehavior添加的请求和服务的标识

在这里插入图片描述

4. 添加中间价

在这里插入图片描述

  • LogContextTraceLoggingMiddleware
namespace Evently.Api.Middleware;
internal sealed class LogContextTraceLoggingMiddleware(RequestDelegate next)
{public Task Invoke(HttpContext context){string traceId = Activity.Current?.TraceId.ToString();using (LogContext.PushProperty("TraceId", traceId)){return next.Invoke(context);}}
}
  • MiddlewareExtensions 用于将自定义日志追踪中间件 LogContextTraceLoggingMiddleware 添加到 ASP.NET Core 的中间件管道中。
namespace Evently.Api.Middleware;
internal static class MiddlewareExtensions
{internal static IApplicationBuilder UseLogContextTraceLogging(this IApplicationBuilder app){app.UseMiddleware<LogContextTraceLoggingMiddleware>();return app;}
}
  • 中间件添加
    在这里插入图片描述

二、Rabbit MQ

2.1 配置Rabbit MQ

1. docker-compose

  • docker-compose.yml
evently.queue:image: rabbitmq:management-alpinecontainer_name: Evently.Queuehostname: evently-queuevolumes:- ./.containers/queue/data/:/var/lib/rabbitmq- ./.containers/queue/log/:/var/log/rabbitmqenvironment:RABBITMQ_DEFAULT_USER: guestRABBITMQ_DEFAULT_PASS: guestports:- 5672:5672- 15672:15672

2. 添加Rabbit MQ的Connect String

  "ConnectionStrings": {"Database": "Host=evently.database;Port=5432;Database=evently;Username=postgres;Password=postgres;Include Error Detail=true","Cache": "evently.redis:6379","Queue": "amqp://evently-queue:5672"},

2.2 替换成Rabbit MQ

1. 安装所需要的包

  • 替换之前内存为Rabbit MQ
  • 安装所需要的包
    <PackageReference Include="AspNetCore.HealthChecks.Rabbitmq" Version="8.0.1" /><PackageReference Include="MassTransit.RabbitMQ" Version="8.2.1" />
  1. 创建MQ配置文件
namespace Evently.Common.Infrastructure.EventBus;
public sealed record RabbitMqSettings(string Host, string Username = "guest", string Password = "guest");

2. 使用

  1. 修改MassTransit,将内存改为MQ
    在这里插入图片描述
  2. 注册Ticketing的消费者
    在这里插入图片描述
  3. 注册Event的消费者
    在这里插入图片描述
  4. Program里注册
    在这里插入图片描述

三、API Gateways

在这里插入图片描述

3.1 创建Gateway

在这里插入图片描述

1. 配置docker-compose

在这里插入图片描述

2. 添加各种服务

  • 在Gateway的program.cs里添加服务
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog((context, loggerConfig) => loggerConfig.ReadFrom.Configuration(context.Configuration));
builder.Services.AddReverseProxy().LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"));builder.Services.AddOpenTelemetry().ConfigureResource(resource => resource.AddService(DiagnosticsConfig.ServiceName)).WithTracing(tracing =>{tracing.AddAspNetCoreInstrumentation().AddHttpClientInstrumentation().AddSource("Yarp.ReverseProxy");tracing.AddOtlpExporter();});builder.Services.AddAuthorization();
builder.Services.AddAuthentication().AddJwtBearer();
builder.Services.ConfigureOptions<JwtBearerConfigureOptions>();
WebApplication app = builder.Build();
app.UseLogContextTraceLogging();
app.UseSerilogRequestLogging();
app.UseAuthentication();
app.UseAuthorization();
app.MapReverseProxy();
app.Run();

3. 添加jwt配置

namespace Evently.Gateway.Authentication;
internal sealed class JwtBearerConfigureOptions(IConfiguration configuration): IConfigureNamedOptions<JwtBearerOptions>
{private const string ConfigurationSectionName = "Authentication";public void Configure(JwtBearerOptions options){configuration.GetSection(ConfigurationSectionName).Bind(options);}public void Configure(string? name, JwtBearerOptions options){Configure(options);}
}

4. 添加日志追踪

  1. 添加日志追踪
using System.Diagnostics;
using Serilog.Context;
namespace Evently.Gateway.Middleware;
internal sealed class LogContextTraceLoggingMiddleware(RequestDelegate next)
{public Task Invoke(HttpContext context){string traceId = Activity.Current?.TraceId.ToString();using (LogContext.PushProperty("TraceId", traceId)){return next.Invoke(context);}}
}
  1. 注册
namespace Evently.Gateway.Middleware;
internal static class MiddlewareExtensions
{internal static IApplicationBuilder UseLogContextTraceLogging(this IApplicationBuilder app){app.UseMiddleware<LogContextTraceLoggingMiddleware>();return app;}
}

5. 配置appsettings

  • 基础设置
{"Authentication": {"Audience": "account","TokenValidationParameters": {"ValidIssuers": [ "http://evently.identity:8080/realms/evently", "http://localhost:18080/realms/evently" ]},"MetadataAddress": "http://evently.identity:8080/realms/evently/.well-known/openid-configuration","RequireHttpsMetadata": false},"Serilog": {"Using": ["Serilog.Sinks.Console","Serilog.Sinks.Seq"],"MinimumLevel": {"Default": "Information","Override": {"Microsoft": "Information"}},"WriteTo": [{ "Name": "Console" },{"Name": "Seq","Args": { "serverUrl": "http://evently.seq:5341" }}],"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],"Properties": {"Application": "Evently.Gateway"}},"OTEL_EXPORTER_OTLP_ENDPOINT": "http://evently.jaeger:4317",
}

6. Yarp反向代理设置

在这里插入图片描述

http://www.dtcms.com/a/470672.html

相关文章:

  • 千亿级赛道,Robobus 赛道中标新加坡自动驾驶巴士项目的“确定性机会”
  • 滴滴自动驾驶张博:坚持负责任的科技创新,积极探索新型就业空间
  • 建设公司怎么做网站运营模拟建筑2022手机版
  • 网站设计价格网站建设与管理专业
  • (六) Dotnet在AI控制台案例启用遥测数据与工具函数调用
  • 生产线操作工行为识别方案
  • Windows下快速安装Composer教程
  • 游戏交易网站开发莱芜网红
  • 静态网站怎么更新哪些网站是用织梦做的
  • (项目管理系列课程)项目规划阶段:项目范围管理-创建WBS
  • app的制作流程图苏州优化件
  • 图生3D技术解析:从二维平面到立体世界的智能飞跃
  • 东莞黄江建设银行网站做wordpress总结
  • 网站 pinghei做爰全过程免费狐狸网站
  • 网站常用的优化方法有哪些网页设计模板html代码ie
  • 国内如何升级GitHub Copilot到专业版
  • 小说网站开发流程具体火车头wordpress免登录发布
  • 济南中建设计院 官方网站米课wordpress建站
  • 从指令遵循到价值对齐:医疗大语言模型的进阶优化、对齐与工具集成综合技术白皮书
  • 个人商城网站备案医院网站源码php
  • 基于螳螂虾优化的LSTM深度学习网络模型(MShOA-LSTM)的一维时间序列预测算法matlab仿真
  • 合肥肥东网站建设河南河南省住房和城乡建设厅网站
  • 网站经营网络备案信息wordpress更换域名2017
  • 鸿蒙纯血ArkTS经典蓝牙(SPP)
  • php项目网站建设方案书佛山百度快速排名优化
  • 七彩喜艾灸机器人:当千年中医智慧遇上现代科技
  • 接待机器人与访客系统对接技术解析
  • 【ThinkPHP6系列学习-4】数据库操作
  • 网站 网站建设定制cad图做网站链接
  • 同一ip网站湖南省郴州市临武县