斗爷

导航

.net core开发实战(转)

第一章 必备知识

04.StartUp:启动过程:

ConfigureWebHostDefaults
ConfigureHostConfiguration
ConfigureAppConfiguration
ConfigureServices
ConfigureLogging
Startup
Startup.ConfigureServices
Startup.Configure

05.依赖注入

生命周期:

1.单例 Singleton  全局

2.作用域 Scoped : 每一个请求内实例一致,不同请求不一致

3.瞬时,暂时  Transient

06.作用域与对象释放行为:

避免在根容器获取实现了 IDisposable 接口的瞬时服务
避免手动创建实现了 IDisposable 对象,应该使用容器来管理其生命周期

07.Autofac

• 基于名称的注入
• 属性注入
• 子容器
• 基于动态代理的 AOP

08.配置框架

15.选项框架

16.选项框架.热更新

• 范围作用域类型使用 IOptionsSnapshot
• 单例服务使用 IOptionsMonitor

20.结构化日志组件serilog

22.异常处理中间件:区分真异常和逻辑异常

第二章 微服务实战篇

26.工程结构概览

领域模型层  基础设施层  应用层  共享层

27.定义实体

28.工作单元模式

29.定义仓储

30.领域事件

31.APIController

32.33.集成事件

34.35.MediatR

36.HttpClientFactory:向外请求的最佳实践

37.38 gRPC:内部服务间通讯利器

39.Polly:用失败重试机制提升服务可用性

• 失败重试
• 服务熔断
• 超时处理
• 舱壁隔离
• 缓存策略
• 失败降级
• 组合策略

40.Polly:熔断慢请求避免雪崩效应

• 被动策略(异常处理、结果处理)
• 主动策略(超时处理、断路器、舱壁隔离、缓存)

41.网关与BFF(区分场景与职责)

BFF:服务于前端的后端  Ocelot

42.网关与BFF(使用JWT来实现身份认证与授权)

JWT:JSON Web Token

43.反跨站请求伪造

1. 通过cookie存储和传递身份信息(不用cookie,用jwt)

2. AntiforgeryToken 来防御

3. 避免使用get

44.防开放重定向攻击

1.使用localredirect来处理重定向(仅限于本站)

2.验证重定向的目标域名是否合法

45.防跨站脚本

对用户提交进行验证,编码;cookie设置为httponly;使用query传递

46.安全:跨域请求

1. 方案相同 ( HTTP/HTTPS ) 2. 主机(域名)相同  3. 端口相同

47.缓存:为不同的场景设计不同的缓存策略

缓存失效:数据不一致

缓存穿透:缓存不存在数据,(缓存数据为null,强制返回一个默认值)

缓存击穿:缓存失效瞬间,大量缓存访问数据库(二级缓存)

缓存雪崩:缓存key大量失效,导致数据库压力(缓存失效时间均匀分布)

MemoryCache,StackExchangeRedisCache,ResponseCaching(与身份认证冲突),EasyCaching

posted on 2020-06-07 15:27  斗哥哥  阅读(878)  评论(0编辑  收藏  举报