ASP.NET Core微服务实战系列
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注。
前言
这里记录的是个人奋斗和成长的地方,该篇只是一个系列目录和构想,并没有完全真正开弓。之所以有这个题目,是因为.NET Core在国内的学习资源七零八落,偶尔园里也有零星好文出现,但是系统性的,带深入浅出实战风格的专题介绍目前没有看到,之前特定整理了一个资源分享,持续收集了不少资源,但是总感觉还是做的不够好,对个体或团队要进行技术升级还是没有门道可循。
目前关于.NET Core方面有系统性持续写做的,我全网搜了一遍,Artech文章相对比较系统,但是他的文章口味太咸,开篇就是框架揭秘:剖析设计思想和实现原理,让人望而却步。因为你可能更多的是评估开发进度风险,希望能先把车开起来,再去了解汽车引擎、缸数、排量等等。所以我希望逢着的是一幅画卷在面前徐徐展开,让人赏心悦目,豁然开朗的阅读体验。一个能从读者的角度,把技术写作当中一个不断优化的产品,不但要考虑新人的起点,考虑文章内容的循序渐进,同时又不觉得太浅淡,在兼顾实战的基础上又能逐步深入原理和设计思想,能够把很深奥的东西通过丰富的表达方式,比如在样式上、排版布局上、阅读体验上让知识平滑递进。
好吧,我承认这种要求有点苛刻,毕竟这里不是学校。没有人能这么的去推广和写作,这得耗费多少时间和经历。但是,不去尝试,怎么就不知道能不能做到呢?所以简单的规划了一下,于是就有了下面的.NET Core微服务实战大纲草稿,初步分入门,进阶,实战三个阶段,希望后面写作风格能给赏心悦目、豁然开朗的阅读体验。
如果你在阅读过程中觉得味道不对,应该加点酱油或者放点盐巴什么的,希望你给我这个新厨子一个建议,争取在下一盘菜出来的时候,让你满意。
入门篇
第一章 窥视.NET Core平台
第二章 ASP.NET Core入门关键要点
引子
- 专题介绍
- 环境安装
- 创建项目
- 部署到IIS
- 准备CentOS和Nginx环境
- 部署到CentOS
配置管理
- 命令行和JSON的配置
- Bind建立配置文件和实体的映射
- 用Options建立配置和实体的映射
- 配置的热更新
- 配置的框架浅析
依赖注入
- 依赖注入
- 依赖注入源码分析
HTTP请求
- ASP.NET Core请求过程
- WebHost配置和启动
- dotnet watch run和attach
- 管道Middleware简介
- 管道实现机制和模拟构建管道
认证授权
- 基于JWT的认证和授权
- 基于JWT的令牌生成和定制
- Role和Claims授权
第三章 EF Core进阶
- 实体创建和数据库迁移
- 数据的初始化和操作
- EF Core高性能编程
- 日志管理和变更追踪
- 高并发和事务处理
进阶篇
第四章 微服务知识图谱导航
- 微服务学习导航
- 到底什么是微服务
- 微服务架构核心部件
- 漫谈何时从单体架构迁移到微服务
- 微服务网关
- RPC远程调用
- 微服务的监控
- 微服务的跟踪
- 微服务的治理
- 微服务和DevOps
- 微服务和Docker
- 微服务的部署
- 微服务的划分方式和坑
第五章 IdentityServer4认证与授权
- OAuth2.0原理
- OAuth模式实践
- OAuth2.0 VS OpenId Connect
第六章 Linux技术铺垫
- 6.1 Linux环境搭建和常用命令
- 6.2 Linux文件和目录管理
- 6.3 Linux系统用户和用户组管理
- 6.4 Linux磁盘管理
- 6.5 Linux系统服务管理
第七章 Docker容器必知必会
- 7.1 容器镜像与仓库
- 7.2 构建多容器环境
- 7.3 Docker安装Mysql与配置
- 7.4 Docker安装MongoDb
- 7.5 Docker制作.NET Core镜像
- 7.6 EF Core、Mysql快速构建Web API
- 7.7 Docker Network
- 7.8 Docker Compose
- 7.9 Git工作流选择
- 7.10 GitLab的使用
- 7.11 部署Registry
- 7.12 K8S
实战篇
第八章 用户服务
- 8.1 服务拆分和界定
- 8.2 EF Core数据模型设计
- 8.3 服务API设计
- 8.4 数据访问和模型处理
- 8.5 异常处理和日志记录
- 8.6 HTTP Patch更新数据
- 8.7 单元测试初探
- 8.8 编写测试用例
- 8.9 基于GitLab的CI/CD
第九章 网关和认证
- 9.1 API网关和服务发现
- 9.2 用户注册和登录
- 9.3 IdentityServer4自定义验证功能
- 9.4 Ocelot网关的运用
- 9.5 服务间的发现和调用
- 9.6 Polly的设计和使用
- 9.7 ResilienceHttpClient的运用
第十章 信息流服务
- 10.1 业务分析及外部依赖检查
- 10.2 外部依赖
- 10.3 将接口加入到网关
- 10.4 将profile添加到Identity Api和网关
- 10.5 RabbitMQ简介
- 10.6 EventBus
- 10.7 EventBus集成CAP
- 10.8 事件发生实现
第十一章 评论服务
- 11.1 DDD介绍
- 11.2 CQRS基本介绍
- 11.3 领域事件和集成事件
- 11.4 框架搭建
- 11.5 领域模型创建
- 11.6 MediatR与领域事件
第十二章 微服务监控与部署
- 12.1 监控对象
- 12.2 监控指标
- 12.3 监控维度
- 12.4 监控原理
- 12.5 分布式追踪介绍以及zipkin server初始化
- 12.6 使用zipkin.NET客户端完成追踪和数据发送
- 12.7 Elastic Search简洁和入门
- 12.8 日志的类别
- 12.9 EFK介绍
- 12.10 日志系统和日志的生命周期
- 12.11 Fluentd介绍
- 12.12 Serilog介绍
ASP.NET Core微服务实战系列的更多相关文章
- go-zero微服务实战系列(三、API定义和表结构设计)
前两篇文章分别介绍了本系列文章的背景以及根据业务职能对商城系统做了服务的拆分,其中每个服务又可分为如下三类: api服务 - BFF层,对外提供HTTP接口 rpc服务 - 内部依赖的微服务,实现单一 ...
- go-zero微服务实战系列(十一、大结局)
本篇是整个系列的最后一篇了,本来打算在系列的最后一两篇写一下关于k8s部署相关的内容,在构思的过程中觉得自己对k8s知识的掌握还很不足,在自己没有理解掌握的前提下我觉得也很难写出自己满意的文章,大家看 ...
- 微服务实战系列--Nginx官网发布(转)
这是Nginx官网写的一个系列,共七篇文章,如下 Introduction to Microservices (this article) Building Microservices: Using ...
- Chris Richardson微服务实战系列
微服务实战(一):微服务架构的优势与不足 微服务实战(二):使用API Gateway 微服务实战(三):深入微服务架构的进程间通信 微服务实战(四):服务发现的可行方案以及实践案例 微服务实践(五) ...
- 【.NET Core微服务实战-统一身份认证】开篇及目录索引
简介 学习.NETCORE也有1年多时间了,发现.NETCORE项目实战系列教程很少,都是介绍开源项目或基础教程,对于那些观望的朋友不能形成很好的学习思路,遇到问题怕无法得到解决而不敢再实际项目中 ...
- Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇(内附开发 demo)
简介 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系. 系列 云原生 API 网关,gRPC-Gateway V2 初探 业务流程 官方开发接入文档 ...
- go-zero 微服务实战系列(一、开篇)
前言 在社区中经常看到有人问有没有基于 go-zero 的比较完整的项目参考,该类问题本质上是想知道基于 go-zero 的项目的最佳实践.完整的项目应该是一个完整的产品功能,包含产品需求.架构设计. ...
- 微服务实战系列(二)-注册中心Springcloud Eureka客户端
1. 场景描述 前几天介绍了下springcloud的Eureka注册中心(springcloud-注册中心快速构建),今天结合springboot-web介绍下eureka客户端服务注册. 2. 解 ...
- 微服务实战系列(四)-注册中心springcloud alibaba nacos
1.场景描述 因要用到微服务,关于注册中心这块,与同事在技术原型上做了讨论,初步定的方案是使用:阿里巴巴的nacos+springcloud gateway,下面表格是同事整理的注册中心对比,以前用的 ...
随机推荐
- python实现四则运算和效能分析
代码github地址:https://github.com/yiduobaozhi/-1 PSP表格: 预测时间(分钟) planning 计划 15 Estimate 估计这个任务需要多少时间 10 ...
- Python_eval()
''' eval()用来把任意字符串转化为Python表达式并进行求值 ''' print(eval('3+4')) #计算表达式的值 a=3 b=4 print(eval('a+b')) #这时候要 ...
- seo优化做起来不是哪么简单,其实需要的是思维
SEO百科:随着人们互联网的认识水平的提升,SEO似乎也已经得到了更多的认识.无论是浅显还是深入,SEO一直被大众认为是简单的,甚至是不值得一提的东西,甚至认为SEO无非就是作弊,SEO并 ...
- Oracle聚合函数
max(),min(),avg(),sum() 其中 avg(),sum()只能操作数字 , max(),min()能操作数字.日期.字母 等.
- SSM-Spring-08:Spring的静态代理初窥案例
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 静态代理 java的设计模式的代理模式,就是静态代理 写在前面的话,静态代理的优点和缺点 优点:可以在不改变一 ...
- jQuery上下滑动内容切换选项卡
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- hibulder中使用git教程
https://jingyan.baidu.com/article/25648fc19c14839191fd0027.html
- 微机原理基础(四)—— MSC51
一.MCS51基本组成(STC89C52) CPU(8051CPU) + 存储器(4KB ROM/256B RAM)+外设(4组IO口,两个定时器,一个串口) 1.组成结构简图 ...
- redis 中如何切换db
一台服务器上都快开启200个redis实例了,看着就崩溃了.这么做无非就是想让不同类型的数据属于不同的应用程序而彼此分开. 那么,redis有没有什么方法使不同的应用程序数据彼此分开同时又存储在相同的 ...
- python抓取数据构建词云
1.词云图 词云图,也叫文字云,是对文本中出现频率较高的"关键词"予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨. 先看几个词 ...