在线数据分析工具,深圳网站关键词优化公司,企业内部网站制作模板,品牌建设标题本心、输入输出、结果 文章目录 系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第四部分#xff1a;微服务架构前言典型的微服务架构是什么样的微服务的优势 微服务最佳实践在开发微服务时#xff0c;我们需要遵循以下最佳实践#xff1a; 微服务通常使用什么技术堆栈… 本心、输入输出、结果 文章目录 系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第四部分微服务架构前言典型的微服务架构是什么样的微服务的优势 微服务最佳实践在开发微服务时我们需要遵循以下最佳实践 微服务通常使用什么技术堆栈▶️预生产▶️生产 为什么卡夫卡Kafka很快步骤说明 弘扬爱国精神 系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第四部分微服务架构 编辑简简单单 Online zuozuo 地址https://blog.csdn.net/qq_15071263 如果觉得本文对你有帮助欢迎点赞、收藏、评论
前言
我们使用视觉效果和简单术语来解释复杂的系统是如何运转的帮助我们理解技术细节
我们使用视觉效果和简单术语来解释复杂的系统是如何运转的帮助我们理解技术细节 典型的微服务架构是什么样的
下图显示了典型的微服务体系结构。
负载均衡器这会在多个后端服务之间分配传入流量。CDN内容交付网络CDN 是一组地理位置分散的服务器用于保存静态内容以加快交付速度。客户端首先在 CDN 中查找内容然后进行到后端服务。API 网关处理传入请求并将其路由到相关服务。它与标识提供者和服务发现通信。身份提供程序用于处理用户的身份验证和授权。服务注册和发现微服务注册和发现发生在此组件中API 网关在此组件中查找要与之通信的相关服务。管理此组件负责监视服务。微服务微服务在不同的域中设计和部署。每个域都有自己的数据库。API 网关通过 REST API 或其他协议与微服务通信同一域中的微服务使用 RPC远程过程调用相互通信。 微服务的优势
它们可以快速设计、部署和水平扩展。每个域都可以由专门的团队独立维护。因此可以在每个域中自定义业务需求并得到更好的支持。 微服务最佳实践
开发微服务的 9 个最佳实践 在开发微服务时我们需要遵循以下最佳实践
为每个微服务使用单独的数据存储将代码保持在类似的成熟度级别为每个微服务单独生成为每个微服务分配一个职责部署到容器中设计无状态服务采用领域驱动设计设计微前端编排微服务 微服务通常使用什么技术堆栈
下面将显示一个图表显示开发阶段和生产的微服务技术堆栈 ▶️预生产
定义 API - 这将在前端和后端之间建立协定。为此我们可以使用 Postman 或 OpenAPI。开发 - Node.js 或 react 在前端开发中很受欢迎java/python/go 在后端开发中很受欢迎。此外我们需要根据 API 定义更改 API 网关中的配置。持续集成 - 用于自动化测试的 JUnit 和 Jenkins。代码打包到 Docker 映像中并部署为微服务。
▶️生产
Nginx 是负载均衡器的常见选择。Cloudflare提供CDN内容交付网络。API 网关 - 我们可以对网关使用 Spring boot并使用 Eureka/Zookeeper 进行服务发现。微服务部署在云上。我们有AWSMicrosoft Azure或Google GCP之间的选择。 缓存和全文搜索 - Redis 是缓存键值对的常见选择。ElasticSearch 用于全文搜索。通信 - 为了使服务相互通信我们可以使用消息传递下 Kafka 或 RPC。持久性 - 我们可以将 MySQL 或 PostgreSQL 用于关系数据库将 Amazon S3 用于对象存储。如有必要我们还可以将Cassandra用于宽柱存储。管理和监控 - 为了管理如此多的微服务常见的Ops工具包括PrometheusElastic Stack和Kubernetes 为什么卡夫卡Kafka很快
有许多设计决策对Kafka的性能做出了贡献。在这篇文章中我们将重点介绍两个。我们认为这两个人最有分量 第一个是 Kafka 对顺序 I/O 的依赖。使 Kafka 具有性能优势的第二个设计选择是它对效率的关注零拷贝原则。
步骤说明
该图说明了数据如何在生产者和消费者之间传输以及零拷贝的含义。步骤 1.1 - 1.3创建者将数据写入磁盘
步骤 2使用者在没有零拷贝的情况下读取数据2.1 数据从磁盘加载到操作系统缓存2.2 数据从操作系统缓存复制到Kafka应用程序2.3 Kafka 应用程序将数据复制到套接字缓冲区2.4 数据从套接字缓冲区复制到网卡2.5 网卡向消费者发送数据
步骤 3使用者使用零拷贝读取数据3.1数据从磁盘加载到操作系统缓存 3.2 操作系统缓存通过 sendfile 命令直接将数据复制到网卡 3.3 网卡向消费者发送数据零拷贝是在应用程序上下文和内核上下文之间保存多个数据副本的快捷方式弘扬爱国精神