.NET Core 开发实战
肖伟宇
校宝在线架构师、SkyWalking .NET 探针贡献者、NetCorePal 组件库创建者
20086 人已学习
新⼈⾸单¥59
课程目录
已完结/共 61 讲
第一章:必备知识 (25讲)
时长 06:28
时长 02:13
.NET Core 开发实战
登录|注册
留言
8
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 41 | 网关与BFF:区分场景与职责
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | .NET Core的现状、未来以及环境搭建
04 | Startup:掌握ASP.NET Core的启动过程
05 | 依赖注入:良好架构的起点
06 | 作用域与对象释放行为:你知道IDisposable对象释放的时机和坑吗?
07 | 用Autofac增强容器能力:引入面向切面编程(AOP)的能力
08 | 配置框架:让服务无缝适应各种环境
09 | 命令行配置提供程序:最简单快捷的配置注入方法
10 | 环境变量配置提供程序:容器环境下配置注入的最佳途径
11 | 文件配置提供程序:自由选择配置的格式
12 | 配置变更监听:配置热更新能力的核心
13 | 配置绑定:使用强类型对象承载配置数据
14 | 自定义配置数据源:低成本实现定制化配置方案
15 | 选项框架:服务组件集成配置的最佳实践
16 | 选项数据热更新:让服务感知配置的变化
17 | 为选项数据添加验证:避免错误配置的应用接收用户流量
18 | 日志框架:聊聊记日志的最佳姿势
19 | 日志作用域:解决不同请求之间的日志干扰
20 | 结构化日志组件Serilog:记录对查询分析友好的日志
21 | 中间件:掌控请求处理过程的关键
22 | 异常处理中间件:区分真异常与逻辑异常
23 | 静态文件中间件:前后端分离开发合并部署骚操作
24 | 文件提供程序:让你可以将文件放在任何地方
25 | 路由与终结点:如何规划好你的Web API
26 | 工程结构概览:定义应用分层及依赖关系
27 | 定义Entity:区分领域模型的内在逻辑和外在行为
28 | 工作单元模式(UnitOfWork):管理好你的事务
29 | 定义仓储:使用EF Core实现仓储层
30 | 领域事件:提升业务内聚,实现模块解耦
31 | APIController:定义API的最佳实践
32 | 集成事件:解决跨微服务的最终一致性
33 | 集成事件:使用RabbitMQ来实现EventBus
34 | MediatR:轻松实现命令查询职责分离模式(CQRS)
35 | MediatR:让领域事件处理更加优雅
36 | HttpClientFactory:管理向外请求的最佳实践
37 | gRPC:内部服务间通讯利器
38 | gRPC:用代码生成工具提高生产效率
39 | Polly:用失败重试机制提升服务可用性
40 | Polly:熔断慢请求避免雪崩效应
41 | 网关与BFF:区分场景与职责
42 | 网关与BFF:使用JWT来实现身份认证与授权
43 | 安全:反跨站请求伪造
44 | 安全:防开放重定向攻击
45 | 安全:防跨站脚本
46 | 安全:跨域请求
47 | 缓存:为不同的场景设计合适的缓存策略
48 | 部署:演示一个部署流程
49 | ConfigMap:实现基本配置方案
50 | 配置:使用分布式配置中心方案版本化管理配置
51 | 健康检查:与Liveness、Readiness、Startup探测集成实现高可用
52 | 健康检查:搭建全量健康检查探针和看板
53 | ForwardedHeaders:确保服务在负载均衡下正常工作
54 | 安全:介绍强制HTTPS的两种方式
55 | 日志:与EFK日志三件套集成
56 | 日志:Exceptionless日志系统
57 | 追踪:集成SkyWalking .NET实现追踪
58 | 监控与告警:Prometheus与AlertManager
59 | 监控与告警:用Granfana实现监控看板
60 | prometheus-net:自定义监控指标利器
61 | 结课测试&结束语
本节摘要
登录 后留言

全部留言(8)

  • 最新
  • 精选
智鑫
老师,示例代码能否独立分开,比如用分支、tag之类的方式,现在获取的最新网关代码中还有helthcheck, skywalking的代码,与视频的代码状态并不一致,运行起来行为也不一致。 对像我这样的小白来说,这些干扰代码带来了不小的困难

作者回复: 可以在源码库里进行具体的提问,我会关注的

2020-05-07
stg609
如果是BFF, 那网关和聚合服务是否可以放在一个项目中更合适?

作者回复: 是的,可以考虑这样的设计

2020-05-06
SuperSnow
肖老师,有几个问题想沟通一下: 1、在“专用网关模式”中,如果有聚合服务的需求,所创建的聚合服务应该是基于现有的微服务来进行拼装,这里的微服务是否也可以不按照rpc的形式来进行交互,依然按照json格式来处理呢? 2、另外如果网关面对某一个单独的微服务,一般情况下都是经过dto处理过的json数据。如果要加一个聚合服务,那聚合服务应该有另外一套dto的数据体现要求了,按这个思路的话,微服务所提供的就不能返回dto的数据,而是尽量全面的数据。 假如没有聚合服务,只有微服务,目前我的做法是将dal,bll,webapi直接做为一个进程内来处理,最终以json格式暴露出api。如果也想让微服务向聚合服务提供资源的话,那只能从业务逻辑层进行rpc封装,对webapi的项目进行解耦,让dto转换在webapi项目中做转换了。这部分不知道你们是按照什么样的方式来设计的,需要老师解惑一下。 3、第三个问题可能会受第2个问题不明朗的影响,但也提一下,由于聚合服务是将多个微服务进行组装的服务,随着需求变更或项目发展,微服务可能会有一些变化,此时聚合服务也会受到相应影响,在生产中,聚合服务是如何得到更好的把控呢?

作者回复: 1.你理解的是对的 2.聚合服务可以作为一个业务聚合需求的补充,与微服务的api共存 3.这种情况是没办法避免的,能做的是尽可能清晰地识别业务聚合的部分的归属,划不开的部分才用聚合服务。

2020-04-24
Luke 💨
感觉把聚合放在网关并不合适,聚合服务主要是对诸多微服务接口的统一请求并整合数据给前端,如果放在网关,首先网关会比较乱,各种业务都有,非常难维护,特别不同团队共享网关时,另外网关主要还是做限流、熔断、日志、认证等相关基础工作不应该和业务挂钩!
2020-08-07
1
奥特曼
精简实用
2021-10-25
赵孔磊
老师 BFF 和网关区别不大,那为什么还要有俩个概念?
2021-07-20
上善若水
请教老师,本地测试,发现访问网关是会重定向的,比如,5003,输入地址后会重定向到5001的地址,ocelot版本16,教程中并没有发生重定向,这是为什么?多谢
2021-01-19
王亚
使用新版本的Ocelot 16.xx 配置文件写法跟14.xx版本有出入
2020-06-03
1
收起评论