微服务架构最佳实践

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情

微服务架构最佳实践_第1张图片

构建和管理微服务是一项艰巨的任务。这是因为微服务就像多个并行的整体应用程序,它们都必须处于同步通信和并发运行时间。因此,在设计和构建它们时考虑并应用最佳实践非常重要。以下是此类做法的列表,但并不详尽:

  1. 不要构建微服务。
  • 认真地说,构建微服务只能被视为最后的选择。
  • 务实一点。
  • 首先尝试构建一个模块化整体。微服务应该放在最后。

2. 针对失败进行设计。

  • 任何使用微服务的分布式系统总是有失败的可能。设计得越早越好。
  • 故障设计必须满足每个级别——基础设施级别、数据库级别和单个微服务。
  • 应使用断路器、优雅的降级方法和舱壁。

3. 构建小型服务。

  • 微服务应该非常具体,并且应该在这一点上表现出色。将微服务构建为一把瑞士刀会导致灾难。

4. 使用轻量级通信协议。

  • 微服务之间的通信至关重要。
  • 应使用 REST、GRPC 或消息队列等协议。
  • 应尽可能减少通信开销并提高性能。

5. 实施服务发现。

  • 为了有效通信,微服务需要能够相互识别,因此,应该从一开始就实现服务发现。
  • 可以使用Eureka或者Consul等工具。

6.数据管理应该是分布式的。

  • 数据应归各个服务所有。
  • 任何数据都应该由所有者服务管理。
  • 最终目标应该是减少服务之间的耦合,使它们能够独立发展。

7. 实施弹性模式。

  • 为了提高系统可用性,应实施弹性模式。
  • 鼓励使用重试策略、缓存和速率限制。

8. 主动监控服务。

  • 在任何分布式系统中,会宕机的服务最终都会宕机。
  • 为了跟上服务的步伐,需要及时识别问题,并收集和分析指标。
  • Prometheus 和 Grafana 等工具有助于监控整个系统并尽早发现潜在问题。

9. 各级都应配备安全性。

  • 微服务具有很大的攻击面,因此尽可能最小的单元内的安全性非常重要。
  • 安全性必须从基础设施层到服务层,再到通信层来实现。
  • 应使用最新安全协议和工具的适当权限。

10.集中记录。

  • 在了解系统发生的情况时,日志非常重要。
  • 但是,为了确保日志有意义,来自所有服务的日志必须聚合在一个集中位置以便于分析。
  • 使用 ELK 等工具构建强大的日志记录设置。

11. 使用容器化技术。

  • 为了以隔离的方式部署微服务,应使用容器化和编排工具,例如 Docker 和 Kubernetes。
  • 它们旨在简化服务的部署和扩展要求。
  • 还应该分配充足的时间来管理这些资源。

12. 使用自动化测试和部署。

  • 微服务应该经过彻底的测试以确保可靠性。
  • 应使用自动化测试用例作为 CI/CD 流程的一部分来确保无缝体验。

你可能感兴趣的:(架构设计,架构,微服务,云原生)