ASP.NET Core微服务框架Ocelot+Consul+IdentityServer4实战演练
一、背景介绍
API网关的流行源于最近几年移动应用与企业间接口对接的兴起,使得原来单一的PC客户端,变化到PC客户端、各种浏览器、手机移动端及智能终端等。同时系统之间大部分都不是单独运行,经常会涉及与其他系统对接、共享数据的需求。随着微服务架构概念的提出,API网关成为了微服务架构的一个标配组件。随着业务快速发展,面向手机移动应用业务越来越多,为了减少客户端与服务的耦合,节约后端微服务的开发成本,建立一个高性能、高可用、减少上线风险的API网关成为一个迫切的需求。
1)、目前面临现状:假设你正好是一个后端开发,而老板又刚好让你开发网站,其中需要涉及到很多后端的微服务,比如会员、商品、推荐服务等等。那么这里就会遇到一个问题,APP/Browser怎么去访问这些后端的服务?如果业务比较简单的话,可以给每个业务都分配一个独立的域名(https://service.api.company.com),但这种方式会有几个问题:每个业务都会需要鉴权、限流、权限校验等逻辑,如果每个业务都各自为战,自己造轮子实现一遍,会很蛋疼,完全可以抽出来,放到一个统一的地方去做。
2)、有效的解决办法:更好的方式是采用API网关,实现一个API网关接管所有的入口流量,类似Nginx的作用,将所有用户的请求转发给后端的服务器,但网关做的不仅仅只是简单的转发,也会针对流量做一些扩展。比如鉴权、限流、权限、熔断、协议转换、错误码统一、缓存、日志、监控、告警等,这样将通用的逻辑抽出来,由网关统一去做,业务方也能够更专注于业务逻辑,提升迭代的效率。通过引入API网关,客户端只需要与API网关交互,而不用与各个业务方的接口分别通讯,本次分享课程阿笨将在基于上两堂课程的基础上以ASP .NET Core 为例子,目前比较火热的就是 ocelot+consul 的搭配,通过在服务中嵌入 ocelot 和 consul 的客户端,自动的完成服务注册到(Consul)和服务发现(ocelot读取Consul中的服务);当用户访问某个 url 的时候,ocelot 将会根据路由将用户请求转发到从 Consul 拉取到的真正的服务中同时通过统一身份认证授权中心IdentityServer4进行鉴权。
如果您同样对本次分享《ASP.NET Core微服务框架Ocelot+Consul+IdentityServer4实战演练》课程感兴趣的话,那么请跟着阿笨一起学习吧。废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。
二、ASP.NET Core微服务框架Ocelot+Consul+IdentityServer4项目结构介绍
![](https://upload-images.jianshu.io/upload_images/1676984-92550c6eb320de30.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
三、 Consul服务注册与发现介绍
四、下游微服务通过API接入Consul
五、Ocelot网关介绍
六、Ocelot网关认证授权流程图
七、认证授权IdentityServer4介绍以及搭建
八、Ocelot网关接入认证授权中心
九、Ocelot网关接入Conusl服务注册与发现
十、Ocelot网关统一查看多个API微服务Swagger接口文档
十一、思考与总结
相关文章
- ASP.NET Core WebApi基于Redis实现Token接口安全认证
- ASP.NET中使用Entity Framework开发增删改查的Demo(EF增删改查+母版页的使用)
- asp.net中WinForm使用单例模式示例
- Asp.Net 三层架构之泛型应用
- ASP.NET Core 6框架揭秘实例演示[18]:HttpClient处理管道
- ASP.NET Core 6框架揭秘实例演示[10]:Options基本编程模式
- ASP.NET Core 6框架揭秘实例演示[02]:基于路由、MVC和gRPC的应用开发
- [ASP.NET Core MVC] 如何实现运行时动态定义Controller类型?
- [ASP.NET Core 3框架揭秘] 配置[5]:配置数据与数据源的实时同步
- [ASP.NET Core 3框架揭秘] 文件系统[3]:物理文件系统
- ASP.NET Core真实管道详解[2]:Server是如何完成针对请求的监听、接收与响应的【上】
- ASP.NET Core的配置(2):配置模型详解
- ASP.NET MVC (二、数据传递)
- ASP.NET,C#后台调用前台javascript的五种方法
- 【课程分享】ASP.NET MVC5&微信公众平台整合开发实战(响应式布局、JQuery Mobile,Windows Azure、微信核心开发)
- Net Core 微服务 - 如何在docker容器里运行一个简单的.net core web api 服务
- 浅谈 asp.net core web api
- asp.net core 中的路由
- ASP.NET Core微服务(四)——【静态vue使用axios解析接口】
- ASP.NET Core: 使用会话(Session)