当前位置: 首页 > news >正文

微服务架构最佳实践

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

显示微服务架构如何工作的图像。

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

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

2. 针对失败进行设计。

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

3. 构建小型服务。

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

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

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

5. 实施服务发现。

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

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

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

7. 实施弹性模式。

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

8. 主动监控服务。

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

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

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

10.集中记录。

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

11. 使用容器化技术。

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

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

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

相关文章:

  • 国内首款支持苹果Find My芯片-伦茨科技ST17H6x
  • linux 01 centos镜像下载,服务器,vmware模拟服务器
  • Linux安装RabbitMq明白纸(无图)
  • Android - CrashHandler 全局异常捕获器
  • 商品源数据如何采集,您知道吗?
  • 输入输出流、字符字节流、NIO
  • js中对数字,超大金额(千位符,小数点)格式化处理
  • Android 打开热点2.4G系统重启解决
  • 全链路压力测试有哪些主要作用
  • 【python基础教程】print输出函数和range()函数的正确使用方式
  • LeetCode255.用队列实现栈
  • PHPStudy快速搭建网站并结合内网穿透远程访问本地站点
  • AI嵌入式K210项目(1)-芯片开发板介绍
  • Blazor中使用impress.js
  • ros2 ubuntu 20.04 安装 foxy
  • Blazor 错误笔记
  • 【深度学习1对1指导】
  • XUbuntu22.04之快速复制绝对路径(二百零五)
  • 21、Kubernetes核心技术 - 高可用集群搭建(kubeadm+keepalived+haproxy)
  • 使用SpringDataRedis操作Redis
  • PyCharm社区版如何创建Django项目并运行
  • 深度探讨鸿蒙工程师面试题
  • python数据结构堆栈
  • 从网页连接socket服务器和I/O
  • 鸿蒙HarmonyOS学习手册_入门篇
  • 人工智能复习
  • C++ 多态以及多态的原理
  • 贝蒂详解<string.h>(下)
  • 问题 F: 分巧克力
  • 安装pillow可能遇到的问题