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

掌握高并发、高可用架构

第四章 微服务

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

第一节 微服务基础

微服务

1. 微服务的定义

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

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

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

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

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值