zoukankan      html  css  js  c++  java
  • 微服务-SpringCloud学习系列(一):认识微服务

    本系列是学习SpringCloud微服务的学习笔记和自己的一些理解,更细节的内容可以参考官网或者网络上的教程进行学习。

    1.什么是微服务?

    微服务是一种现代化的软件方法,通过该方法,应用代码以小巧,易于管理的方式交付,彼此独立。

    它们的小规模和相对隔离性可以带来许多其他好处,例如更容易维护,提高生产率,更大的容错能力,更好的业务调整等等。

    显然微服务不是凭空出现,看一下发展历程

    从单体架构->垂直架构(项目拆分)->分布式(SOA架构->微服务架构)。

    通常SOA使用RPC进行通信(基于TCP和序列化),而微服务通常使用Restful的HTTP通信。

     那么如何将单体架构拆分为微服务架构呢

    ②这里要介绍一下Chris Richardson提出的微服务的三维扩展模型:

    X轴,服务实例水平扩展,保证可靠性与性能;

    Y轴,功能的扩展,服务单一职责,功能独立;

    Z轴,数据分区,数据独立,可靠性保证;

    ③分布式的CAP理论

    CAP理论作为分布式系统的基础理论,它描述的是一个分布式系统在以下三个特性中:

    • 一致性(Consistency)
    • 可用性(Availability)
    • 分区容错性(Partition tolerance)

     最多满足其中的两个特性。也就是下图所描述的。分布式系统要么满足CA,要么CP,要么AP。无法同时满足CAP。

    2.微服务架构有哪些?

     而SpringCloud作为微服务的一站式解决方案,也是微服务开发的首选。

    并且基于SpringBoot的快速开发模式已逐渐成为微服务的Java标准开发模式。(这里关于SpringBoot不做过多解释,还不太了解的可以自行学习)

    3.什么是SpringCloud?

     我的初步理解是SpringCloud是微服务中各组件的集成,定义了顶层的接口。类似slf4j的感觉,为各组件提供默认实现和自定义实现。

    4.总结

    微服务就是将集成的单体服务拆分成更加灵活独立的小单体服务。而基于SpringBoot的SpringCloud是微服务的一站式解决方案。

    当然如果是业务不复杂的小系统,用传统的单体服务模式就可以,没必要采用微服务架构。

    学习微服务建议首先要看一下martinflower的文章(见参考资料),然后就是在SpringCloud的官方网站进行学习,不理解的地方再针对性的找一些优质的网文进行学习。

    5.参考资料

    什么是微服务?

    什么是微服务架构?

    什么是微服务?为什么你要用微服务?

  • 相关阅读:
    [Oracle工程师手记]如何收集 RMAN 工作时的 10046 trace
    [Linux]Linux环境,如何查找一个目录下所有包含特定字符串的文件
    [Oracle工程师手记]如何找到 RMAN 的所有 session
    PowerShell提交HTTP Request Post请求
    PowerShell计算字符串MD5 Hash值
    《异类》笔记
    《哈弗商学院 判断与决策心理学课》笔记
    《影响力》笔记
    《金字塔原理》笔记
    三月十九日,偶感
  • 原文地址:https://www.cnblogs.com/masting/p/12753570.html
Copyright © 2011-2022 走看看