前面微服务2篇文章:html
分层:是一种很常见的架构方法。好比咱们常见的网络协议TCP/IP的分层。分层以后,各层各司其职,相互隔离开来。nginx
最简单的服务分层:docker
第一层:接入层
外部设备访问的统一接入层。安全
第二层:聚合服务层
对下层的基础服务作一些聚合,剪裁的工做,适配上层不一样设备的数据输出。网络
第三层:基础服务层
比较细粒度的微服务层,提供基础的核心服务,公共服务。架构
有了下面的基础服务层,还有上面的聚合层干什么呢?负载均衡
好比:有时候PC端和APP端的数据显示不同,手机屏幕比较小,可能显示的数据少些,而PC端显示的数据多些,这样就须要对不一样的接入层设备的数据作一些裁剪的工做。微服务
好比:下面的基础服务层,分的服务粒度可能比较细,接入层APP须要一个功能时,有时须要访问几个基础服务,以后APP在聚合这些服务数据,这样效率就不好,不如咱们在服务端直接聚合服务,而后把聚合好的数据直接发给APP,这样访问效率就能够提高,从而提高用户体验。学习
上面只是一个最基本的服务分层,能够在这个基本分层结构之上进行扩展。架构设计
学习杨波老师的《微服务架构》里面的一张图,稍微作了一些修改:
上面的整体技术架构图一共分了6层
接入层
也能够叫负载均衡层,把外部的流量引入到系统中来。通常负载均衡软件有nginx,lvs,还有各大云服务厂商本身的负载均衡服务。
网关层
内部接口的一些认证、安全、鉴权、过滤、限流等服务,通常处于这一层。这一层把内部的服务接口作一层安全隔离,保护内部服务,同时也能够实现一些其余需求,好比前面讲的鉴权、黑名单过滤等等需求。因此这一层在微服务架构中是很重要的一层。
业务服务层
基础服务和聚合服务
支撑服务层
微服务可以成功实施落地,这一层与下一层CI/CD的配套设施是很是重要。微服务不是把上面的业务服务写完就完事了,在服务治理的过程当中须要不少配套设置支持。
这一层包括注册服务中心,配置中心,监控报警服务,日志聚合服务,调用链监控几大服务,后台服务涉及的服务有消息队列,定时任务,数据访问等内容。
平台服务层
这一层是实施业务弹性治理的关键。集群的资源调度:扩展和减小。业务量上来时,能够弹性增长资源。
在微服务建设过程当中,可能会遇到一些突发事件。好比微博明星热点事件,会致使访问量暴增,这就须要能实时增长服务资源应对这种突发状况,热点事后,又要减小资源。
镜像管理和发布系统配合使用能够应对出现的这种状况。因此不少团队后面会引入docker+k8s,容器,镜像管理,容器服务编排。此外,基于CI/CD的DevOps也是构建在这一层能力。
基础设施层
这个是最底层的基础设施,网络,存储,硬盘,IDC的部分。
laas 这个概念就是针对这一层。
上面的这个架构图,还能够有其余的表现形式,好比把支撑系统服务画在2侧面,只要能正确表达出架构思想。
每家公司业务模型,开发人员,都不尽相同,因此架构设计也可能不一样,上面的看成一种参考设计。请务必根据自家状况来设计架构,适合本身的才是最好的。