文章目录

  • 1. 什么是微服务
    • 1.1 微服务的特性
      • 自主
      • 专用性
    • 1.2 微服务的优势
      • 敏捷性
      • 灵活扩展
      • 轻松部署
      • 技术自由
      • 可重复使用的代码
      • 弹性
  • 2. 微服务技术栈
  • 3. 微服务架构演进
    • 3.1 单体架构
    • 3.2 分布式架构
      • 服务治理
    • 3.3 微服务
      • 微服务结构
      • 微服务技术对比
      • 企业需求

1. 什么是微服务

微服务是一种开发软件的架构和组织方法,其中软件由通过明确定义的 API 进行通信的小型独立服务组成。这些服务由各个小型独立团队负责。
微服务架构使应用程序更易于扩展和更快地开发,从而加速创新并缩短新功能的上市时间。

1.1 微服务的特性

自主

可以对微服务架构中的每个组件服务进行开发、部署、运营和扩展,而不影响其他服务的功能。这些服务不需要与其他服务共享任何代码或实施。各个组件之间的任何通信都是通过明确定义的 API 进行的。

专用性

每项服务都是针对一组功能而设计的,并专注于解决特定的问题。如果开发人员逐渐将更多代码增加到一项服务中并且这项服务变得复杂,那么可以将其拆分成多项更小的服务。

1.2 微服务的优势

敏捷性

微服务促进若干小型独立团队形成一个组织,这些团队负责自己的服务。各团队在小型且易于理解的环境中行事,并且可以更独立、更快速地工作。这缩短了开发周期时间。您可以从组织的总吞吐量中显著获益。

灵活扩展

通过微服务,您可以独立扩展各项服务以满足其支持的应用程序功能的需求。这使团队能够适当调整基础设施需求,准确衡量功能成本,并在服务需求激增时保持可用性。

轻松部署

微服务支持持续集成和持续交付,可以轻松尝试新想法,并可以在无法正常运行时回滚。由于故障成本较低,因此可以大胆试验,更轻松地更新代码,并缩短新功能的上市时间。

技术自由

微服务架构不遵循“一刀切”的方法。团队可以自由选择最佳工具来解决他们的具体问题。因此,构建微服务的团队可以为每项作业选择最佳工具。

可重复使用的代码

将软件划分为小型且明确定义的模块,让团队可以将功能用于多种目的。专为某项功能编写的服务可以用作另一项功能的构建块。这样应用程序就可以自行引导,因为开发人员可以创建新功能,而无需从头开始编写代码。

弹性

服务独立性增加了应用程序应对故障的弹性。在整体式架构中,如果一个组件出现故障,可能导致整个应用程序无法运行。通过微服务,应用程序可以通过降低功能而不导致整个应用程序崩溃来处理总体服务故障。

2. 微服务技术栈

3. 微服务架构演进

3.1 单体架构

单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。
优点:

  • 架构简单
  • 部署成本低

缺点:

  • 耦合度高

3.2 分布式架构

分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。
优点:

  • 降低服务耦合
  • 有利于服务升级拓展

服务治理

分布式架构的要考虑的问题

  • 1、服务拆分粒度如何?
  • 2、服务集群地址如何维护?
  • 3、服务之间如何实现远程调用?
  • 4、服务健康状态如何感知?

3.3 微服务

微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发
  • 面向服务:微服务队伍暴露业务接口
  • 自治:团队独立、技术独立、数据独立、部署独立、
  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

微服务结构

微服务结构这种方案需要技术框架来落地,全球的互联网公司都在积极尝试自己的微服务落地技术。在国内最知名的就是SpringCloud 和 阿里巴巴的Dubbo

微服务技术对比

企业需求


【微服务】—— 初识微服务相关推荐

  1. Java开发必读--初识微服务一定要阅读这篇文章

    原文转自一线互联网资深架构师,微服务布道师小马哥的原创文章,始发与小马哥公众号. 微服务是什么? 微服务是一种细粒度(Fine-Grain)的SOA 或许在座的高朋了解过其概念.个人认为,与其说微服务 ...

  2. 初识微服务之Eureka

    Eureka简介 Eureka就好比是一个控制中心,负责管理,记录服务提供者的信息.服务调用者无需自己寻找服务,而是把自己的需求告诉Eureka,然后Eureka会把符合你需求的服务告诉你.同时,服务 ...

  3. 微服务是什么?初识微服务

    一.微服务的概念 微服务架构可以说是如何将功能分解成一系列服务的一种架构模式.对于一个应用系统包含两部分的需求:第一部分是功能性需求,用于定义一个应用是用来做什么的,该应用系统用来达到什么目的:第二部 ...

  4. 【微服务】—— 微服务组件基本介绍

    文章目录 1. Nacos 1.1 Nacos介绍 补充 1)CAP理论 2)BASE理论 1.2 nacos能做什么? 1.3 引入配置中心为了什么? 1.4 Nacos心跳机制 2. Seata ...

  5. 微服务架构 — 微服务框架

    目录 文章目录 目录 微服务框架 第一代微服务框架 Spring Cloud Dubbo 下一代微服务框架 - Service Mesh Istio Envoy Kubernetes + Servic ...

  6. 应用量化时代 | 微服务架构的服务治理之路

    技术随业务而生,业务载技术而行. 近些年来,伴随数字经济的发展,在众多企业的数字化转型之路上,云原生.DevOps.微服务.服务治理等成为行业内不断被探讨的新话题.人们在理解和接受这些新型概念的同时, ...

  7. Spring Cloud构建微服务架构:服务容错保护(Hystrix断路器)

    断路器 断路器模式源于Martin Fowler的Circuit Breaker一文."断路器"本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路时," ...

  8. 亿级流量电商详情页系统实战:缓存架构+高可用服务架构+微服务架构

    <缓存架构+高可用服务架构+微服务架构>深入讲解了亿级流量电商详情页系统的完整大型架构.同时最重要的是,在完全真实的大型电商详情页系统架构下,全流程实战了整套微服务架构,包含了基于领域驱动 ...

  9. Spring Cloud构建微服务架构:服务注册与发现(Eureka、Consul)【Dalston版】

    Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全 ...

最新文章

  1. I00039 亲密数(Amicable numbers)
  2. 网络推广——企业新站还得是专业网络推广公司来维护!
  3. Spark任务调度流程及调度策略分析
  4. CG CTF WEB 起名字真难
  5. linux命令看文件内容,Linux文件内容查看相关命令
  6. 一击即中的表白方式,学会了吗?
  7. matlab不同调制方式下性能比较,用不同调制方式实现跳/扩频混合通信的抗干扰性能...
  8. vba 删除 添加checkbox_如何设置EXCEL输入内容后自动添加边框?
  9. php selenium下拉列表,Selenium+java - 下拉框处理
  10. 模式识别之聚类算法k-均值---k-均值聚类算法c实现
  11. MARKDOWN使用小计
  12. 广告智能定向技术lookalike
  13. Mybatis 向指定表中批量插入数据
  14. 利用mdadm工具构建RAID 0/1/5/6/10磁盘阵列实战(超详细)
  15. 何谓情比金坚——婚姻来源和相关说法
  16. JavaScipt设计模式初探-代理模式(一)
  17. AMD显卡怎么提高帧数?AMD显卡提高fps的方法
  18. 成为Java GC专家系列(三) ——如何优化Java垃圾回收
  19. 百度地图 根据经纬度获取城市或省的名称
  20. scrcpy替换minicap

热门文章

  1. 我的初恋测试,到底测试一岗究竟每天都干什么?
  2. 修复SSL3.0漏洞
  3. 转转用户画像平台实践
  4. matlab的k s检验,K-S 检验(Kolmogorov–Smirnov  kurtosis-skewness)
  5. 网络协议 3 - 物理层 和 MAC 层
  6. linux建立系统分区表,Linux系统fdisk创建分区(主分区、扩展分区和逻辑分区)过程详解...
  7. 论文修改---参考文献修改
  8. 2019一年上百万_2019年将是云系统制造商的一年
  9. 拜占庭将军问题(Byzantine Generals Problem)
  10. ESP8266--系统软件定时器