微服务架构

微服务架构的优势

  • 独立开发
  • 独立部署
  • 故障隔离
  • 混合技术栈
  • 粒度缩放

对微服务怎么理解

微服务架构是一种分布式架构解决方案,推动细粒度服务的使用,每个服务都可以独立运行,且这些服务可以协同工作。

微服务有哪些特点

  • 解藕
  • 组件化
  • 业务能力
  • 自治
  • 持续交付
  • 责任
  • 分散治理
  • 敏捷性

设计微服务的最佳实践是什么

  • 为每个微服务分开数据存储
  • 将代码保持在类似的成熟度等级上
  • 为每个微服务进行单独的构建
  • 部署到容器中
  • 将服务器视为无状态的

微服务架构的优点

  • 可以自由使用不同的技术
  • 每个服务专注于单一功能
  • 支持单个可部署单元
  • 允许软件的持续发布
  • 可确保每项服务的安全性
  • 并行开发和部署多个服务

微服务架构的缺点

  • 增加故障排除的难度
  • 由于远程调用而导致延迟增加
  • 增加配置和其他操作的工作量
  • 难以维持处理的安全性
  • 很难跟踪各种边界的数据
  • 服务之间难以编码

单体应用、SOA和微服务架构有什么区别

  • 单体应用类似一个大容器,其中程序的所有组件都被组装在一起并紧密包装
  • SOA是一组相互通信的服务。通信可以涉及简单的数据传送,也可以涉及两个或多个协调某些活动的服务
  • 微服务架构是一种架构风格,它将应用程序构建为以业务域为模型的小型自治服务集合

使用微服务架构面临的挑战是什么

  • 自动化组件:难以自动化,因为有许多较小的组件。对于每个组件,都必须采取构建、发布和监控的步骤
  • 可感知性:将大量组件维持在一起会带来难以部署、维护、监控和识别的问题。它需要在所有组件周围具有很好的感知力
  • 配置管理:有时在各种环境中维护组件的配置会很困难
  • 调试:很难找到与产生的错误相关的每一项服务。维护一个集中式的日志和控制面板对调试问题至关重要

什么是内聚

内聚是一个模块内部各元素之间相关程度的度量

什么是耦合

组件之间依赖关系强度的度量被称为耦合。好的设计总是高内聚低耦合的

什么是REST/RESTful

表述性状态转移是一种帮助计算机系统通过Internet进行通信的架构风格。

REST的用途是什么

它使得微服务更容易理解和实现,用RESTful API去构建松散耦合的微服务总是更容易些

微服务之间是如何通讯的

远程过程调用RPC:

  • 直接用远程过程调用来访问别的服务
  • 示例:REST、gRPC、Apache、Thrif
  • 优点:简单,常见。因为没有中间件代理,系统更简单
  • 缺点:只支持请求/响应的模式,不支持别的;降低了可用性

消息

  • 使用异步消息来做服务间的通信。服务间通过消息来交换消息,从而通信
  • 示例:Apache Kafka、RabbitMQ
  • 优点:把客户端和服务端解藕,更松耦合,提高可用性,因为消息中间件缓存了消息,直到消费者可以消费;支持多种通信机制比如通知、请求/异步响应、发布/订阅、发布/异步响应
  • 缺点:消息中间件有额外的复杂性

内容摘自:https://mp.weixin.qq.com/s/RN3MdzyaY-AGJOktO0GLfQ

远程过程调用RPC

posted @ 2020-07-03 12:08  灿钿  阅读(196)  评论(0编辑  收藏  举报