随笔分类 -  .net core(web)

摘要:前言 整理了一下.net core 一些常见的库的源码阅读,共32个库,记100余篇。 以下只是个人的源码阅读,如有错误或者思路不正确,望请指点。 正文 github 地址为: https://github.com/stefanprodan/AspNetCoreRateLimit 一般个人习惯先阅读 阅读全文
posted @ 2021-09-24 00:50 敖毛毛 阅读(1898) 评论(1) 推荐(16) 编辑
摘要:前言 简单整理一下配置中心。 正文 什么时候需要配置中心? 多项目组并行协作 运维开发分工职责明确 对风险控制有更高诉求 对线上配置热更新有诉求 其实上面都是套话,如果觉得项目不方便的时候就需要用配置中心了。 apollo 配置中心系统的能力: 权限与审计 版本管理 热更新 原生支持java和.ne 阅读全文
posted @ 2021-07-12 21:33 敖毛毛 阅读(640) 评论(0) 推荐(1) 编辑
摘要:前言 简单整理一下缓存。 正文 缓存是什么? 缓存是计算结果的"临时"存储和重复使用 缓存本质是用空间换取时间 缓存的场景: 计算结果,如:反射对象缓存 请求结果,如:DNS 缓存 临时共享数据,如:会话存储 热点访问内容页,如:商品详情 热点变更逻辑数据,如:秒杀的库存数 缓存的策略: 越接近最终 阅读全文
posted @ 2021-07-12 08:46 敖毛毛 阅读(615) 评论(0) 推荐(3) 编辑
摘要:前言 简单整理一下.net core 的跨域问题,这个以前也整理过比较详细的,故而在此简单整理一下。 正文 对跨域相对的就是同源,什么是同源呢? 协议相同(http/https) 主机(域名)相同 端口相同 如果全部满足这个三个条件就是同源,否者就是跨域。 跨域请求大概是下面这个过程: 从上面中看到 阅读全文
posted @ 2021-07-11 21:40 敖毛毛 阅读(567) 评论(0) 推荐(1) 编辑
摘要:前言 简单整理一下跨站脚本攻击。 正文 攻击原理是这样子的: 这种攻击被攻击的面挺多的,比如说只要有一个可以让用户输入的注入脚本就都是一个问题。 给网站注入脚本 然后用户访问给网站注入的脚本 脚本里面的请求都是对攻击者站点的的请求 用户信息就被拿走了 上面这样将可能有点蒙,举一个以前的例子哈。 有一 阅读全文
posted @ 2021-07-10 10:18 敖毛毛 阅读(307) 评论(0) 推荐(0) 编辑
摘要:前言 简单介绍一下重定向攻击。 正文 攻击思路: 看着上面挺复杂的,其实是一些很简单的步骤。 攻击者通过某些手段,让用户打开了一个好站点,打开的这个地址里面带有重定向信息,重定向信息就是自己伪造的站点。 这是因为我们一般不知道网站从哪个页面而来,登录后会返回伪造的站点,也就是我们的后台会利用重定向信 阅读全文
posted @ 2021-07-10 09:18 敖毛毛 阅读(487) 评论(0) 推荐(2) 编辑
摘要:前言 简单整理一下cookie的跨站攻击,这个其实现在不常见,因为很多公司都明确声明不再用cookie存储重要信息,不过对于老站点还是有的。 正文 攻击原理: 这种攻击要达到3个条件: 用户访问了我们的站点。 用户通过cookie存储和传递身份信息 用户访问了坏站点 1和3根本控制不了,那么控制的就 阅读全文
posted @ 2021-07-08 07:35 敖毛毛 阅读(600) 评论(0) 推荐(1) 编辑
摘要:前言 简单整理一下网关中的jwt,jwt用于授权认证的,其实关于认证授权这块https://www.cnblogs.com/aoximin/p/12268520.html 这个链接的时候就已经写了,当然只写到了4节,后面有10节没有写,是相对复杂的场景,后续会补齐。 正文 jwt 是json web 阅读全文
posted @ 2021-07-07 07:37 敖毛毛 阅读(988) 评论(1) 推荐(2) 编辑
摘要:前言 简单整理一下网关。 正文 在介绍网关之前,介绍一下BFF,BFF全称是Backend For Frontend,它负责认证授权,服务聚合,目标是为前端提供服务。 说的通透一点,就是有没有见过这种服务。 上述就是buff通过代理其他服务来让前端访问。这时候就有人说了,这不就是网关吗? 是的,个人 阅读全文
posted @ 2021-07-05 07:58 敖毛毛 阅读(863) 评论(0) 推荐(1) 编辑
摘要:前言 简单整理一下熔断与限流,跟上一节息息相关。 正文 polly 的策略类型分为两类: 被动策略(异常处理、结果处理) 主动策略(超时处理、断路器、舱壁隔离、缓存) 熔断和限流通过下面主动策略来实现: 降级响应 失败重试 断路器 舱壁隔离 Policy 类型 状态 说明 CircuitBreake 阅读全文
posted @ 2021-07-03 23:22 敖毛毛 阅读(1846) 评论(3) 推荐(5) 编辑
摘要:前言 简单整理一下polly 重试。 正文 在开发程序中一般都有一个重试帮助类,那么polly同样有这个功能。 polly 组件包: polly 功能包 polly.Extensions.Http 专门针对http的扩展包 Miscrosoft.Extension.Http.Polly 看到这个名字 阅读全文
posted @ 2021-07-02 07:43 敖毛毛 阅读(768) 评论(0) 推荐(4) 编辑
摘要:前言 简单整理一下grpc工具。 正文 工具核心包: Grpc.Tools 这个是项目要引用的包,用来生成cs代码的。 dotnet-grpc 这个就是cli,命令行工具 dotnet-grpc 核心工具: dotnet grpc add-file dotnet grpc add-url dotne 阅读全文
posted @ 2021-07-01 07:37 敖毛毛 阅读(371) 评论(0) 推荐(0) 编辑
摘要:前言 简单整理一下grpc。 正文 什么是grpc? 一个远程过程调用框架,可以像类一样调用远程方法。 这种模式一般来说就是代理模式,然后都是框架自我生成的。 由google 公司发起并开源,故而前面有个g。 grpc的特点: 提供几乎所有主流语言的实现,打破语言隔阂。 基于http/2,开放协议, 阅读全文
posted @ 2021-06-29 09:19 敖毛毛 阅读(768) 评论(1) 推荐(1) 编辑
摘要:前言 简单整理一下HttpClientFactory 。 正文 这个HttpFactory 主要有下面的功能: 管理内部HttpMessageHandler 的生命周期,灵活应对资源问题和DNS刷新问题 支持命名话、类型化配置,集中管理配置,避免冲突。 灵活的出站请求管道配置,轻松管理请求生命周期 阅读全文
posted @ 2021-06-28 06:47 敖毛毛 阅读(882) 评论(0) 推荐(1) 编辑
摘要:前言 简单介绍一下EventBus. 正文 EventBus 也就是集成事件,用于服务与服务之间的通信。 比如说我们的订单处理事件,当订单处理完毕后,我们如果通过api马上去调用后续接口。 比如说订单完成给用户通知的话,如果是大量订单,即使我们使用异步async await 这种模式,在这个订单服务 阅读全文
posted @ 2021-06-27 21:50 敖毛毛 阅读(1159) 评论(0) 推荐(1) 编辑
摘要:前言 简单介绍一下应用层。 正文 应用层用来做什么的呢? 应用层用来做处理api请求的。 [HttpPost] public Task<long> CreateOrder([FromBody] CreateOrderVeiwModel viewModel) { var model = viewMod 阅读全文
posted @ 2021-06-27 20:30 敖毛毛 阅读(176) 评论(0) 推荐(0) 编辑
摘要:前文 前面整理了仓储层,工作单元模式,同时简单介绍了一下mediator。 那么就mediator在看下领域事件启到了什么作用吧。 正文 这里先注册一下MediatR服务: // 注册中间者:MediatR services.AddMediatRServices(); 具体注册: /// <summ 阅读全文
posted @ 2021-06-27 09:17 敖毛毛 阅读(758) 评论(2) 推荐(4) 编辑
摘要:前言 简单整理一下Mediator。 正文 Mediator 名字是中介者的意思。 那么它和中介者模式有什么关系呢?前面整理设计模式的时候,并没有去介绍具体的中介者模式的代码实现。 如下: https://www.cnblogs.com/aoximin/p/13600464.html 之所以没写代码 阅读全文
posted @ 2021-06-26 12:01 敖毛毛 阅读(779) 评论(0) 推荐(0) 编辑
摘要:前言 简单整理一下仓储层。 正文 在共享层的基础建设类库中: /// <summary> /// 泛型仓储接口 /// </summary> /// <typeparam name="TEntity">实体类型</typeparam> public interface IRepository<TEn 阅读全文
posted @ 2021-06-24 06:56 敖毛毛 阅读(717) 评论(1) 推荐(2) 编辑
摘要:前言 简单整理一下工作单元模式。 正文 工作单元模式有3个特性,也算是其功能: 使用同一上下文 跟踪实体的状态 保障事务一致性 工作单元模式 主要关注事务,所以重点在事务上。 在共享层的基础建设类库中加入: /// <summary> /// 工作单元接口 /// </summary> public 阅读全文
posted @ 2021-06-23 07:27 敖毛毛 阅读(897) 评论(0) 推荐(1) 编辑