跟我学springboot(二)微服务简介

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a303549861/article/details/82156154

1.微服务是怎么提出来的

说起微服务,首先需要提起一个人叫martin fowler。进入他的首页:https://martinfowler.com/ 选择->All Sections,进入选择->microservices,我们可以看到这个人在2014年提出来的概念解释。

2.什么是微服务

简而言之,微服务架构风格是将单个应用程序开发为一套小型服务的方法,每个小型服务都在自己的流程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。这些服务围绕业务功能构建, 可通过全自动部署机制独立部署。有一个集中管理的最低限度的这些服务,可以用不同的编程语言和使用不同的数据存储技术。
- 詹姆斯刘易斯和马丁福勒

3.微服务的特点

  • 通过服务进行组件化
  • 围绕业务能力进行组织
  • 产品不是项目
  • 智能端点和哑管
  • 权力下放的治理
  • 分散数据管理
  • 基建自动化
  • 设计失败
  • 进化设计

4.微服务提供的好处

  • 强大的模块边界:微服务增强了模块化结构,这对大型团队尤为重要。
  • 独立部署:简单的服务更易于部署,并且由于它们是自治的,因此在出错时不太可能导致系统故障。
  • 技术多样性:通过微服务,您可以混合使用多种语言,开发框架和数据存储技术。

5.需要付出代价

  • 分布:分布式系统更难编程,因为远程调用很慢并且始终存在故障风险。
  • 最终的一致性:对于分布式系统来说,保持强一致性非常困难,这意味着每个人都必须管理最终的一致性。
  • 运营复杂性:您需要一个成熟的运营团队来管理大量服务,这些服务正在定期重新部署。

6.单体应用与微服务

6.1单体应用

单体应用是将所有的功能都放在一个应用里面,开发部署简单,横向扩展简单,但是也有自己的缺点就是可能会因为一点小bug会重新部署,牵一发而动全身,而且随着时间的推移,代码越越来越多,维护起来比较复杂。

6.2微服务

  • 一个微服务架构是把每个微服务的功能节点放到一个独立的服务中
  • 可以根据需要任意搭配,对于访问量较大的节点可以多部署,控制自由
  • 对于大型分布式应用的部署是一个挑战,如果应用较多,将形成类似于一个神经网络的结构,这对运维要求很高,如果放在单体应用,就配置文件就会花很长的时间。

7.现代java的web应用解决方案

  • 我们用一张图来解释
    spring解决方案
  • Spring Boot旨在尽可能快地启动和运行,只需最少的Spring前端配置。Spring Boot对构建生产就绪应用程序持批评态度。
  • Spring Cloud直接基于Spring Boot的创新企业Java方法,通过实施经过验证的模式简化分布式微服务式架构,为您的微服务带来弹性,可靠性和协调性。
  • Spring Cloud Data Flow将企业连接到任何东西的互联网 - 移动设备,传感器,可穿戴设备,汽车等。Spring Cloud Data Flow为创建可组合数据微服务提供统一服务,这些服务可解决基于流和基于ETL的数据处理模式。

8.总结

  • 单体应用:ALL IN ONE
  • 微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元

猜你喜欢

转载自blog.csdn.net/a303549861/article/details/82156154