温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-05-30 09:39:45 来源:网络 阅读:178 作者:学习Lr 栏目:编程语言

掌握高并发、高可用架构

第四章 微服务

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

第一节 微服务基础

微服务

1. 微服务的定义

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

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

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

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

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

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

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI