博客
关于我
微服务架构学习与思考(03):微服务总体架构图解
阅读量:431 次
发布时间:2019-03-06

本文共 1298 字,大约阅读时间需要 4 分钟。

微服务架构学习系列文章

一:进行服务分层

在学习微服务架构时,服务分层是一个非常重要的概念。类似于TCP/IP协议的分层,分层的目的是让各层之间相互隔离,各司其职。这种方法能够帮助我们更好地组织和管理微服务系统。

最简单的服务分层

最简单的服务分层可以分为三层:接入层、聚合服务层和基础服务层。

  • 接入层

    这是外部设备访问的统一接入层。它负责把外部流量引入到系统中,并进行初步的处理。常见的接入层技术包括Nginx、LVS等负载均衡工具。

  • 聚合服务层

    这一层的主要职责是对下层基础服务进行聚合和适配。例如,PC端和移动端的数据显示可能有所不同,聚合服务层可以根据不同设备的需求对数据进行裁剪和调整。通过在服务端进行数据聚合,可以显著提升访问效率。

  • 基础服务层

    这一层提供的是比较细粒度的微服务。它通常包括核心服务、公共服务和中间层服务等。上层服务可以通过调用这些基础服务来完成复杂的业务逻辑。

  • 有时候,接入层和聚合服务层的作用可能会让人有些困惑。为什么在服务端直接聚合数据会比在客户端做更好?答案在于服务端聚合可以显著提升访问效率,从而提高用户体验。

    服务分层的扩展

    上面的最简单的服务分层只是一个基本的框架。在实际应用中,我们可以根据具体需求在这个基础之上进行扩展。

    二:微服务总体架构图

    在学习微服务架构时,一个全面的总体架构图非常有帮助。以下是一个常见的微服务架构图,分为六个层次:

  • 接入层

    负载均衡层,负责处理外部流量。它可以使用Nginx、LVS等工具。

  • 网关层

    这一层负责接口的安全性和可靠性。它通常包括认证、鉴权、过滤、限流等功能。通过这一层,我们可以保护内部服务不被未经授权的访问。

  • 业务服务层

    这一层包括基础服务和聚合服务。

    • 基础服务:根据业务特点进一步划分,包括核心基础服务、公共服务和中间层服务。
    • 聚合服务:将细粒度的基础服务封装和关联,形成更高层次的服务。这种方式可以更好地满足上层业务需求。
  • 支撑服务层

    这一层为微服务提供必要的支持。它包括服务注册、配置中心、监控报警、日志聚合等设施。这些工具能够帮助我们更好地管理和运维微服务系统。

  • 平台服务层

    这一层是业务弹性治理的关键。它包括资源调度、镜像管理和发布系统等功能。通过这一层,我们可以实现业务的弹性扩展和收缩。例如,在微博热点事件期间,可以自动扩展服务资源。

  • 基础设施层

    这是最底层的基础设施,包括网络、存储、硬件等。它是整个架构的基础,确保微服务系统能够高效稳定运行。

  • 上面的架构图可以根据具体需求进行调整。每家公司的业务特点和技术环境都可能不同,因此架构设计也需要相应的调整。

    三:参考

    在学习微服务架构时,可以参考一些优秀的资源和文档。以下是一些推荐的参考内容:

    • 《微服务架构》一书由杨波老师撰写,内容详实,非常值得一读。
    • 《微服务设计模式》系列文章,涵盖了微服务在不同层次的设计思路。
    • 各大技术博客和论坛,如Segmentfault、 Hacker News等,通常会有丰富的技术分享。

    每家公司的业务需求和技术环境都有所不同,因此架构设计也需要根据具体情况进行调整。希望以上内容能对你学习微服务架构有所帮助!

    转载地址:http://tzfyz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现最优二叉搜索树算法(附完整源码)
    查看>>
    Objective-C实现最大和连续子序列算法(附完整源码)
    查看>>
    Objective-C实现最大最小距离算法(附完整源码)
    查看>>
    Objective-C实现最大的非常大的数字算法(附完整源码)
    查看>>
    Objective-C实现最大类间方差法OTSU算法(附完整源码)
    查看>>
    Objective-C实现最大非相邻和算法(附完整源码)
    查看>>
    Objective-C实现最小二乘多项式曲线拟合(附完整源码)
    查看>>
    Objective-C实现最小二乘法(附完整源码)
    查看>>
    Objective-C实现最小值滤波(附完整源码)
    查看>>
    Objective-C实现最小公倍数LCM算法(附完整源码)
    查看>>
    Objective-C实现最小生成树 boruvka算法(附完整源码)
    查看>>
    Objective-C实现最小编辑距离问题算法(附完整源码)
    查看>>
    Objective-C实现最小路径和算法(附完整源码)
    查看>>
    Objective-C实现最快的归并排序算法(附完整源码)
    查看>>
    Objective-C实现最短路径Dijsktra算法(附完整源码)
    查看>>
    Objective-C实现最短路径Dijsktra算法(附完整源码)
    查看>>
    Objective-C实现最短路径广度优先搜索算法(附完整源码)
    查看>>
    Objective-C实现最近点对问题(附完整源码)
    查看>>
    Objective-C实现最长公共子序列算法(附完整源码)
    查看>>
    Objective-C实现最长回文子串算法(附完整源码)
    查看>>