八股文之微服务

906 阅读3分钟

什么是微服务

总结成六个字:“高内聚,低耦合”,通俗点说:微服务是一组小而自治的服务。

微服务是一种架构风格:

  • 一组小服务
  • 每个服务独立运行在内存中
  • 服务之间使用轻量级通信
  • 服务可独立部署
  • 是基于业务能力实现
  • 无集中式管理

微服务架构的优势

  • 独立开发:所有微服务都可以根据各自的功能轻松开发
  • 独立部署:根据他们所提供的服务,可以在任何应用中单独部署
  • 故障隔离:即时应用中的一个服务不起作用,系统仍然继续运行
  • 混合技术栈:可以用不同的语言和技术来构建同一应用程序的不同服务
  • 粒度缩放:各个组件可根据需要进行扩展,无需将所有组件融合到一起

微服务有哪些特点

  • 解耦:系统内的服务很大程度是分离。因此,整个应用程序可以轻松构建、更改和扩展
  • 组件化:微服务被视为可以轻松更换和升级的独立组件
  • 业务能力:微服务非常简单,专注于单一功能
  • 自治:开发人员和团队可以彼此独立工作,从而提高速度
  • 持续交付:通过软件创建,测试和批准的系统自动化,允许频繁发布软件
  • 责任:微服务不关注应用程序作为项目。相反,他们将应用程序视为他们负责的产品
  • 分散治理:重点是使用正确的工具来做正确的工作。这意味着没有标准化模式或任何技术模式。开发人员可以自由选择最有用的工具来解决他们的问题
  • 敏捷:微服务支持敏捷开发,任何新功能都可以快速开发并再次丢弃

微服务架构如何运作

  • 客户端:来自不同设备的不同用户发送请求
  • 身份提供商:验证用户或客户身份并颁发安全令牌
  • API网关:处理客户端请求
  • 静态内容:容纳系统的所有内容
  • 管理:在节点上平航服务并识别故障
  • 服务发现:查找微服务之间通信路径的指南
  • 内容交付网络:代理服务器及其数据中心的分布式网络
  • 远程服务:启用驻留在IT设备网络上的远程访问信息

微服务架构的优缺点

优点
  • 自由使用不同的技术
  • 每个微服务都侧重于单一功能
  • 支持单个可部署单元
  • 允许经常发布软件
  • 确保每项服务的安全性
  • 多个服务是并行开发和部署的
缺点
  • 增加故障排除挑战
  • 由于远程呼叫而增加延迟
  • 增加了配置和其他操作的工作量
  • 难以保持交易安全
  • 艰难地跨越各种便捷跟踪数据
  • 难以在服务之间进行编码