掌握系列之微服务-1.概念

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了掌握系列之微服务-1.概念相关的知识,希望对你有一定的参考价值。

掌握高并发、高可用架构

第四章 微服务

本章介绍微服务的概念、为何要引入微服务、微服务会引发的问题,以及流行的微服务架构等。

第一节 微服务基础

微服务

1. 微服务的定义

Martin Flower在2014年的一篇论文《MicroServices》中提出的,在某种程度上微服务是面向服务的架构SOA继续发展的下一步,它是一些协同工作的小而自治的服务,很小,专注于做好一件事,具有自治性,其主要特点是:

  • 与组织结构相匹配,每个服务可按照业务、团队进行划分,使小的团队在小的代码库上高效工作
  • 可组合性,易于重用已有功能
  • 技术异构性,每个服务不限制开发语言,不限制使用的数据库,服务之间通过轻量级API调用
  • 简化部署,每个服务独立部署,服务之间互不影响,管理自动化
  • 弹性扩展,可针对用户访问流量大的服务单独扩展,从而节约资源
  • 对可替代性的优化,微服务中的多个相似服务,重写或移除一个或多个服务的阻碍会很小
2. 引入微服务会面临的挑战

虽然微服务看上去很美好,但引入微服务需要考虑以下几个问题

  • 微服务强调服务大小,但没有一个统一标准,大多是根据经验来划分业务模块。要记住,微服务是达到目的的手段,而不是目标
  • 微服务的部署必然是分布式的,这会造成程序的复杂性。分布式事务、网络延迟、系统容错、服务之间的通信,以及服务发现、调用链跟踪和代码质量
  • 微服务架构下,不同的服务可能使用不同的数据库。CAP(分布式环境下,一致性Consistency、可用性Availablity、分区容错性Partition tolerance)原则的约束,使得不得不放弃强一致性,转而接受最终一致性
  • 对测试的挑战
  • 跨服务的系统变更
  • 部署,微服务由不同的大量服务构成,每种服务都有自己的配置、应用实例数量以及基础服务地址,所以我们需要统一的配置中心,服务发现机制,以及更好的部署策略和高度自动化水平

所有的挑战体现在微服务的每一个细节

  • API网关 Gateway
  • 服务间调用
  • 服务发现
  • 服务容错
  • 服务部署
  • 数据调用
3. 微服务的七大原则
  • 围绕业务概念建模
  • 接受自动化文化
  • 隐藏内部实现细节
  • 去中心化
  • 独立部署
  • 设计故障模式
  • 高度跟踪

以上是关于掌握系列之微服务-1.概念的主要内容,如果未能解决你的问题,请参考以下文章

重学SpringCloud系列八之微服务网关安全认证-JWT篇

微服务实践系列一之微服务架构

微服务实践系列一之微服务架构

重学SpringCloud系列一之微服务入门

微服务之Service Fabric 系列

Chris Richardson微服务翻译:构建微服务之微服务架构的进程通讯