单体架构-》SOA-》微服务:html
1. 从三层到mvc单体架构(特色:用户少并发少,并发增长),便于管理在一个项目中,但项目愈来愈大知足不了需求过于臃肿、不能拓展(有些模块须要进行扩展有些无需扩展)、资源不能分离。
2.SOA和微服务都是架构思想,基于SOA的架构思想将重复公用的功能抽取为组件,以服务的方式给系统提供服务,系统与服务之间采用webservice、rpc等方式进行通讯,ESB企业服务总线做为项目与服务之间通讯的桥梁。EAI是什么,各个系统间互联,相互传数据的解决方案,原来经过socket通信方式,只能在同一平台上进行通信。基于中间系统,为了能知足跨平台的通信,出现了webserver松耦合的通信方式,数据经过xml传输。ESB包含了EAI的功能,
简单 来讲 ESB 就是一根管道,用来链接各个服务节点。为了集 成不一样系统,不一样协议的服务,ESB 作了消息的转化解释和路由工做,让不一样的服务互联互通。与API网关统一层面的东西,在微服务思想中叫API网关,SOA思想中是ESB,在以前是EAI。
3. 前端代码和后台得分离,将后台代码分布在多个服务器上,负载均衡,缓解并发压力。慢慢对于模块中不一样的需求,某个模块须要更多的服务器有些或许对性能要求不高,从而产生了微服务化,将原有的业务拆成独立的工程, 独立部署,灵活扩展。微服务是以每个独立组件(例如用户服务,商品服务)为单位进行部署,每一个模块为一个独立模块进行部署,经过调用相关的接口来实现交互。
微服务是协做小而自治的服务:小专一于一件事,自治每一个服务独立部署不受影响,协做每一个服务是个体组成了总体相互交互沟通。微服务架构(Microservices Architecture)是将系统拆分为多个应用服务。应用服务实现具体的业务功能,单独部署维护。应用服务之间经过轻量级通讯框架进行,而且支持应用服务用不一样技术或者平台实现。微服务架构是SOA架构设计思想另外一种实现方式。SOA 是粗粒度,松耦合的服务架构,异构系统间的服务通信。微服务是按业务边界作细粒度的拆分和部署。
API
网关是什么?系统暴露在外面的一个惟一入口,像一个公司的门卫承担着寻址、限制进入、安全检查、位置引导等功能。2个系统间或者服务端与客户端间通信,加上一个中间件协做API调用,那就是API网关。同时API网关上能够实现协议转换,负载均衡,请求路由,流量控制等,若涉及到对系统的请求,而且可以从业务中抽离出来的功能,都有可能在网关上实现。
Ocelot是一个用.NET Core实现而且开源的API网关。实现了路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。下图网上找的说的蛮清楚: