微服务架构学习系列文章:

  • 微服务架构学习与思考(01):什么是微服务?微服务的优势和劣势
  • 微服务架构学习与思考(02):微服务实施的前提条件?有哪些问题需要思考?
  • 微服务架构学习与思考(03):微服务总体架构图解

一:进行服务分层

分层:是一种很常见的架构方法。比如我们常见的网络协议TCP/IP的分层。分层之后,各层各司其职,相互隔离开来。

最简单的服务分层

第一层:接入层

外部设备访问的统一接入层。

第二层:聚合服务层

对下层的基础服务做一些聚合,剪裁的工作,适配上层不同设备的数据输出。

第三层:基础服务层

比较细粒度的微服务层,提供基础的核心服务,公共服务。

有了下面的基础服务层,还有上面的聚合层干什么呢?

比如:有时候PC端和APP端的数据显示不一样,手机屏幕比较小,可能显示的数据少些,而PC端显示的数据多些,这样就需要对不同的接入层设备的数据做一些裁剪的工作。

比如:下面的基础服务层,分的服务粒度可能比较细,接入层APP需要一个功能时,有时需要访问几个基础服务,之后APP在聚合这些服务数据,这样效率就很差,不如我们在服务端直接聚合服务,然后把聚合好的数据直接发给APP,这样访问效率就可以提升,从而提升用户体验。

上面只是一个最基本的服务分层,可以在这个基本分层结构之上进行扩展。

二:微服务总体架构图

学习杨波老师的《微服务架构》里面的一张图,稍微做了一些修改:

上面的总体技术架构图一共分了6层

  • 1.接入层

也可以叫负载均衡层,把外部的流量引入到系统中来。一般负载均衡软件有nginx,lvs,还有各大云服务厂商自己的负载均衡服务。

  • 2.网关层
    内部接口的一些认证、安全、鉴权、过滤、限流等服务,一般处于这一层。这一层把内部的服务接口做一层安全隔离,保护内部服务,同时也可以实现一些其他需求,比如前面讲的鉴权、黑名单过滤等等需求。所以这一层在微服务架构中是很重要的一层。

  • 3.业务服务层

基础服务和聚合服务

  • 基础服务:根据业务特点又可以分为核心基础服务、公共服务、中间层服务等。

  • 聚合服务:把下面细粒度的基础服务再进一步封装、关联,组合成新的服务,供上层调用。这一层可以实现多变的需求。
    上面的这种划分是根据逻辑来划分,各个公司可以根据自己实际的业务需求来进行划分。

  • 4.支撑服务层

微服务能够成功实施落地,这一层与下一层CI/CD的配套设施是非常重要。微服务不是把上面的业务服务写完就完事了,在服务治理的过程中需要很多配套设置支持。
这一层包括注册服务中心,配置中心,监控报警服务,日志聚合服务,调用链监控几大服务,后台服务涉及的服务有消息队列,定时任务,数据访问等内容。

  • 5.平台服务层

这一层是实施业务弹性治理的关键。集群的资源调度:扩展和减少。业务量上来时,可以弹性增加资源。
在微服务建设过程中,可能会遇到一些突发事件。比如微博明星热点事件,会导致访问量暴增,这就需要能实时增加服务资源应对这种突发情况,热点过后,又要减少资源。
镜像管理和发布系统配合使用可以应对出现的这种情况。所以很多团队后面会引入docker+k8s,容器,镜像管理,容器服务编排。此外,基于CI/CD的DevOps也是构建在这一层能力。

  • 6.基础设施层

这个是最底层的基础设施,网络,存储,硬盘,IDC的部分。
laas 这个概念就是针对这一层。

上面的这个架构图,还可以有其他的表现形式,比如把支撑系统服务画在2侧面,只要能正确表达出架构思想。

每家公司业务模型,开发人员,都不尽相同,所以架构设计也可能不同,上面的当作一种参考设计。请务必根据自家情况来设计架构,适合自己的才是最好的。

三:参考

  • 微服务2.0技术栈选型手册
  • 唯品会微服务架构演进

微服务架构学习与思考(03):微服务总体架构图解相关推荐

  1. 微服务架构学习与思考(05):微服务架构适用场景分析

    一.简述 在实际开发中,需要考虑多种因素,来决定采取哪种架构模式才适合当前业务发展情况. 毕竟微服务也不能"包治百病",不要把它当做万能药.企业研发哪里得病了,觉得只要把" ...

  2. 微服务架构学习 之 什么是微服务

    很长一段时间了,迷恋于Spring技术应用,执迷和执着促使我坚持不懈地带领着公司研发团队,在这条技术道路上摸爬滚打着前行,即使我心中明白,我们是一个非纯粹的IT企业,但IT新颖技术的诱惑,让我们不断紧 ...

  3. 【论文写作】如何写引言?应该思考什么问题?总体架构!!!

    结构 大多数的科技论文都聚焦于简单地说明,做了什么,发现了什么?虽然这个可以帮助你写出一篇研究型论文当中的核心的东西(方法论和结果),但是不能完全把引言的部分完成.在这篇文章当中,将展示研究型论文当中 ...

  4. Java微服务学习笔记(一):微服务架构的概念理解

    Java微服务学习笔记 Tips:入门学习时粗略整理,仅供参考 (一):架构的基础理解 文章目录 Java微服务学习笔记 前言 一.微服务是什么? 二.常用开源微服务框架演化 1. Dubbo 2. ...

  5. DDD微服务架构设计第四课 微服务落地实践的技术中台

    10 微服务落地的技术实践 如今,做一个优秀的程序员越来越难.激烈的市场竞争.互联网快速的迭代.软件系统规模化发展,无疑都大大增加了软件设计的难度.因此,对于架构师的能力要求也越来越高,就像我的一本书 ...

  6. 腾讯组织架构整改引思考:中小团队要怎样搭建架构?

    原文网址:https://www.infoq.cn/article/UoWc9uUtVIrm-azWOglu 2019 年 1 月 4 日,腾讯宣布成立技术委员会,也代表之前宣布的架构调整终于拉开序幕 ...

  7. 基于Spring Boot和Spring Cloud实现微服务架构学习--转

    原文地址:http://blog.csdn.net/enweitech/article/details/52582918 看了几周spring相关框架的书籍和官方demo,是时候开始总结下这中间的学习 ...

  8. 基于Spring Boot和Spring Cloud实现微服务架构学习

    目录 Spring 顶级框架 Spring cloud子项目 WHAT - 什么是微服务 微服务简介 微服务的具体特征 SOA vs Microservice HOW - 怎么具体实践微服务 客户端如 ...

  9. SpringCloud微服务架构学习

    SpringCloud 1. 微服务架构理论入门 1.1. 微服务架构概述 微服务架构是一种架构模式,它提倡将单一应用程序划分为一组小的服务,服务之间互相协调,互相配合,为用户提供最终价值.每个服务运 ...

  10. javaweb k8s_K8S微服务核心架构学习指南 ASP.NET Core微服务基于K8S 架构师必备Kubernetes教程...

    K8S微服务核心架构学习指南 ASP.NET Core微服务基于K8S 架构师必备Kubernetes教程 课程内容是关于Kubernetes微服务架构学习课程,基于K8S开展ASP.NET核心进行微 ...

最新文章

  1. Inna and Binary Logic
  2. 【完整可运行代码】剑指 Offer 29. 顺时针打印矩阵
  3. 简单一致的Log4j2 Logger命名
  4. Javascript构造函数的继承
  5. php流程控制的类型有哪些,流程控制包括哪些内容
  6. JAVA中判断一个字符串是否包含另一个字符串
  7. asp.net下载文件的常用方法大全
  8. 375 Inscribed Circles and Isosceles Triangles 等腰三角形 内接圆 圆周率PI表示
  9. 狼群ps-天空大师扩展插件_扩展OctoberCMS-构建软删除插件
  10. 手机内置摄像头接线图解_1000以下手机哪款好?8款千元以内性价比最高的手机推荐...
  11. JS 判断字符串是否为空
  12. 【宋红康 MySQL数据库 】【高级篇】【10】索引的创建与删除_MySQL8.0的索引新特性
  13. SSRS----Report Builder 同时冻结首行和前两列的一种方法
  14. c++系列:关于MSVCR100.dll、MSVCR100d.dll、Msvcp100.dll、Msvcp100D.dll 故障查及解决方法
  15. 自然人独资企业要上缴哪些税
  16. 小程序入门第二课 — 组件与WXML语法
  17. php crc16计算,如何在PHP HEX中计算CRC16 CCITT?
  18. 【实例】PHP如何实现汉字转为拼音的?
  19. 如何设置HTML背景特效,HTML5之按钮背景不同动画特效设计
  20. 西门子S7-1200系列PLC定时器指令

热门文章

  1. 安卓9安装xpose
  2. 为什么Android项目mainactivity中有一个变量R_教我兄弟学Android逆向12 编写xpose模块...
  3. 圆通电子面单下单接口
  4. 深度学习-深度卷积神经网络发展
  5. 银联支付接口申请流程-傲付宝
  6. 基站蓄电池充放电曲线分析(一)
  7. 英文打字训练程序c语言,x86汇编实现英文打字练习软件
  8. HTML如何下载文件
  9. android 手柄,Android平台使用PS3无线手柄攻略
  10. 论文泛读: 基于改进退化隐马尔可夫模型的设备健康诊断与寿命预测研究