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

克隆网站首页做单页站几个文件pc网站增加手机站

克隆网站首页做单页站几个文件,pc网站增加手机站,怎么做网站推广云浮,哈尔滨整站文章目录 项目地址一、结构化日志1.1 使用Serilog1. 安装所需要的包2. 注册服务和配置3. 安装Seq服务 1.2 添加分布式id中间件1. 添加中间件2. 注册服务3. 修改Application的LoggingBehavior 二、Redis缓存2.1 添加缓存1. 创建接口ICaching接口2. 实现ICaching接口3. 注册Cachi…

文章目录

  • 项目地址
  • 一、结构化日志
    • 1.1 使用Serilog
      • 1. 安装所需要的包
      • 2. 注册服务和配置
      • 3. 安装Seq服务
    • 1.2 添加分布式id中间件
      • 1. 添加中间件
      • 2. 注册服务
      • 3. 修改Application的LoggingBehavior
  • 二、Redis缓存
    • 2.1 添加缓存
      • 1. 创建接口ICaching接口
      • 2. 实现ICaching接口
      • 3. 注册Caching服务
      • 4. 添加Docker
    • 2.2 服务使用Caching
    • 2.3 查询使用Caching
      • 1. 添加ICachingQuery接口
      • 2. 给查询添加缓存
      • 3. 添加缓存的Pipeline Behaviors
      • 4. 注册管道行为
      • 5. 管道行为和中间件的区别
  • 三、HealthCheck
    • 3.1 安装healthCheck包
    • 3.2 配置HealthCheck
      • 1. 添加注册服务
      • 2. program里添加服务
  • 四、Api Versioning
    • 4.1 创建版本控制
      • 1. 安装需要的包
      • 2. 给controller添加版本 控制
    • 4.2 让Swagger支持api
  • 五、OutBox Pattern
      • 5.1 创建OutboxMessage类
      • 5.2 修改事件发布为Outbox发布
      • 5.3 创建OutBox表
      • 5.4 OutBox设置
      • 1. 创建配置类OutboxOptions
      • 2. 添加配置
      • 3. 注册配置和服务


项目地址

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

一、结构化日志

1.1 使用Serilog

1. 安装所需要的包

    <PackageReference Include="Serilog" Version="4.2.0" /><PackageReference Include="Serilog.AspNetCore" Version="9.0.0" /><PackageReference Include="Serilog.Sinks.Seq" Version="9.0.0" />

2. 注册服务和配置

3. 安装Seq服务

1.2 添加分布式id中间件

1. 添加中间件

2. 注册服务

3. 修改Application的LoggingBehavior

二、Redis缓存

2.1 添加缓存

1. 创建接口ICaching接口

  • 在Application层

2. 实现ICaching接口

  • 在Infrastructure层

3. 注册Caching服务

  • 在Infrastructure里注册

4. 添加Docker

  1. 添加Redis在docker-compose里

  2. 在配置文件里,添加缓存的connection string

2.2 服务使用Caching

  • 给非常耗时的服务添加缓存,这里我们给获取用户的Permision进行缓存

2.3 查询使用Caching

1. 添加ICachingQuery接口

  • 表示给查询添加缓存

2. 给查询添加缓存

  • 给之前的

在这里插入图片描述

3. 添加缓存的Pipeline Behaviors

  • 管道行为只会

4. 注册管道行为

5. 管道行为和中间件的区别

对比项中间件(Middleware)管道行为(Pipeline Behavior)
所属框架ASP.NET CoreMediatR
作用范围整个 HTTP 请求生命周期只作用于 MediatR 的请求(IRequest / INotification)
使用位置配置在 Program.csStartup.cs配置在 AddMediatR(...) 注册过程中
执行顺序多个中间件按注册顺序包裹整个请求多个行为按注册顺序包裹 MediatR 的请求处理器
核心接口RequestDelegateIPipelineBehavior<TRequest, TResponse>
通常用途日志、异常处理、认证、跨域、安全、请求上下文等MediatR 请求的日志、验证、缓存、事务处理等
是否与控制器耦合不耦合:作用于请求最外层只在你使用 MediatR.Send(...) 时生效
是否能终止请求✅ 是:中间件可以选择不调用 next() 终止请求✅ 是:行为也可以选择不调用 next(),终止链条

三、HealthCheck

3.1 安装healthCheck包

  • 有什么服务就安装对应的包,这里我们有postgrsql/redis/uris
    <PackageReference Include="AspNetCore.HealthChecks.NpgSql" Version="8.0.0" /><PackageReference Include="AspNetCore.HealthChecks.Redis" Version="8.0.0" /><PackageReference Include="AspNetCore.HealthChecks.Uris" Version="8.0.0" />

3.2 配置HealthCheck

1. 添加注册服务

2. program里添加服务

四、Api Versioning

4.1 创建版本控制

1. 安装需要的包

    <PackageReference Include="Asp.Versioning.Mvc" Version="8.1.0" /><PackageReference Include="Asp.Versioning.Mvc.ApiExplorer" Version="8.1.0" />
  • 添加服务

2. 给controller添加版本 控制

4.2 让Swagger支持api

五、OutBox Pattern

将要发送的消息,先存入数据库的“Outbox 表”中(和业务数据一起在同一个事务中提交)。
另一个后台进程/服务定期扫描 Outbox 表,将消息发送到消息队列(如 Kafka、RabbitMQ)。
发送成功后更新 Outbox 表状态(如标记为已发送)。
在这里插入图片描述

5.1 创建OutboxMessage类

  • 用于实例化消息
public sealed class OutboxMessage
{public OutboxMessage(Guid id, DateTime occurredOnUtc, string type, string content){Id = id;OccurredOnUtc = occurredOnUtc;Content = content;Type = type;}public Guid Id { get; init; }public DateTime OccurredOnUtc { get; init; }public string Type { get; init; }public string Content { get; init; }public DateTime? ProcessedOnUtc { get; init; }public string? Error { get; init; }
}

5.2 修改事件发布为Outbox发布

  • 修改之前的事件发布
    在这里插入图片描述

5.3 创建OutBox表

  • OutboxMessageConfiguration.cs

internal sealed class OutboxMessageConfiguration : IEntityTypeConfiguration<OutboxMessage>
{public void Configure(EntityTypeBuilder<OutboxMessage> builder){builder.ToTable("outbox_messages");builder.HasKey(outboxMessage => outboxMessage.Id);builder.Property(outboxMessage => outboxMessage.Content).HasColumnType("jsonb");}
}

5.4 OutBox设置

1. 创建配置类OutboxOptions

创建配置类``

public sealed class OutboxOptions
{// 发送到消息队列的间隔时间public int IntervalInSeconds { get; init; }// 批量大小public int BatchSize { get; init; }
}

2. 添加配置

  • 在appsettings里添加
  "Outbox": {"IntervalInSeconds": 5,"BatchSize": 10}

3. 注册配置和服务

http://www.dtcms.com/wzjs/543462.html

相关文章:

  • 网站想换一个空间怎么办外贸网站logo
  • 站库设计网站官网网站内的搜索怎么做
  • 越南的网站建设可以做公司宣传的网站有哪些
  • 青海做网站网站建设及管理制度文章
  • 最好的网站建设团队wordpress网站如何添加栏目
  • 网站开发的后期支持网络服务商在哪咨询
  • 网站突然没有收录网站建设报价清单明细
  • 东莞网站关键排名怎样学好网站开发
  • WordPress科技网站wordpress 用户密码
  • 郑州网站建设价格专业的国内网站建设公司
  • 西安手机网站建设公司排名比分网站制作
  • 武威做网站呼和浩特网站优化
  • 做读书笔记的网站生鲜市场型网站开发
  • 用模板做网站的方法网站流量 龙优化软件
  • 做教育机器网站服务器建设网站
  • wordpress下载最新网络优化器免费
  • 毕业设计做网站有哪些方面网站建设硬件要求
  • 可信网站是什么南昌市会做网站有哪几家
  • 采购网站排名临清做网站推广
  • 住房和城乡建设部网站城市稽查阿里云官网登录入口
  • 网站源代码下载工具明年做那个网站致富
  • 企业网站建设及推广清河网站建设
  • 可以做系统同步时间的网站微博登录网站开发
  • 九千营销工作室介绍网站排名乐云seo
  • 河东做网站设计一个网站的步骤
  • 寻找杭州做网站软件人设计好看的网站
  • 制作公司主页网站网页制作教程步骤视频讲解
  • 有关优化网站建设的书籍开通微信公众号要钱吗
  • 网页设计做音乐网站论坛建站哪个比较好
  • 沭阳网站制作wordpress+联动筛选